我試圖使用scandir()將目錄中的所有文件夾列出到我正在製作的菜單結構中。這裏是我的代碼至今:。列出菜單系統中的所有文件夾
$directory = "models/";
$files = scandir($directory);
echo " <a class=\"menuitem submenuheader\" href=\"#\" >models</a>
<div class=\"submenu\">\n
<ul>\n";
foreach($files as $file)
{
if(is_dir($file))
{
echo "<li><a href=\"$file.html\">$file</a></li>\n";
}
}
echo "</ul>\n</div>\n";
我覺得我有在代碼中的if(is_dir($文件)線的問題 它在菜單中列出兩個項目()和(..)。
感謝您的/是提供的所有幫助!我非常感激。
做一些測試,我更換了foreach循環用for循環。
$directory = "models/";
$folders = scandir($directory);
echo "<a class=\"menuitem submenuheader\" href=\"#\" >models</a>\n";
echo "<div class=\"submenu\">\n";
echo "<ul>\n";
for ($i=0; $i<count($folders); $i++) {
if ($folders[$i] != '.' && $folders[$i] != '..') {
if(is_dir($folders[$i])) {
echo "<li><a href=\"" . $folders[$i] . ".html\">" . $folders[$i] . "</a></li>\n";
}
}
}
echo "</ul>\n</div>\n";
仍然沒有「T工作(不會拉$目錄中的文件夾) 但是,如果我改變
if(is_dir($folders[$i]))
到
if(!is_dir($folders[$i]))
它列出了所有的文件,以及在單個文件夾$目錄。 不知道它爲什麼這樣做。有任何想法嗎?
'.'是當前文件夾,'..'是上一個文件夾,它們在技術上位於文件夾內。 –
'.'和'..'出現在所有文件夾中。 –
也許我有$目錄列出的錯誤。我的實際目標文件夾中還有另一個文件夾沒有列出。 – Rick