2013-10-12 23 views
0

我想为我的网站制作一个小型额外菜单。是否可以获取目录中文件的名称并将它们放入菜单中。使用目录中的文件名称制作菜单

所以,如果你有一个文件目录:facebook.php; twitter.php; stackoverflow.html;你会得到一个菜单是这样的:

  • Facebook的
  • 叽叽喳喳
  • 计算器

而且如果有可能我想选择什么样的文件,他得到。所以我希望他得到.php和.html文件的名称,但不是.css文件的名称。

有人可以帮助我吗?

+0

此问题之前已被询问 - http://stackoverflow.com/questions/8541180/best-way-to-get-files-from-a-dir-filtered-by-certain-extension-in-php – Terry

+0

http://php.net/manual/en/function.scandir.php – ultranaut

回答

3

我喜欢的glob():

foreach(glob("$dir/{*.php,*.html}", GLOB_BRACE) as $file) { 
    //whatever 
} 

$files = glob("$dir/{*.php,*.html}", GLOB_BRACE); //then use $files wherever 

您可以使用PATHINFO()与PATHINFO_BASENAME只得到文件名PATHINFO_FILENAME得到它没有扩展名。

+0

现在我知道如何获取文件名,但是你是否也知道我可以如何将每个文件名放在其他li中?我不擅长PHP,但我想学习它。 –

+1

@Moreno__R:在第一个例子中,只需用'echo“

  • ”.pathinfo($ file,PATHINFO_FILENAME)替换//“
  • ”;' – AbraCadaver

    0

    尝试scandir()方法

    在循环检查当前文件是is_dir一个目录()。然后你可以用[dirname]/[dirname.php]来获取路径。检查是否存在文件,然后可以显示链接。

    $files = scandir('menus'); 
    $links = array(); 
    foreach ($files as $file) { 
        if ($file == "." || $file == "..") 
         continue; 
    
        if (is_dir($file)) { 
         $menuFile = "./menus/$file/$file.php"; 
         if (is_file($menuFile)) { 
         $links[$file] = $menuFile; 
         } 
        } 
    } 
    
    //display the links 
    
    相关问题