2013-10-12 17 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 
    
    相關問題