您好,我想列出目录和子目录(仅,无文件) 作为树状视图菜单
<ul class="tree-menu">
<li>Directory I</li>
<ul>
<li>Sub 1</li>
<ul>
<li>sub a</li>
<li>sub b</li>
</ul>
<li>Sub 2</li>
</ul>
<li>Directory II</li>
<li>Directory III</li>
</ul>
我首先写了2个函数来检查目录中是否有其他目录 第二个用于列出目录和子目录
两者都工作良好,但先嵌套后又发生故障
function dir_is_empty($path)
{
$empty = true;
$dh = @opendir($path);
while (false !== ($file = readdir($dh))) {
if ($file !== "." && $file !== "..") {
if (is_dir($file)) {
$empty = false;
break;
}
}
}
closedir($dh);
return $empty;
}
function getDirectory($path)
{
$ignore = array('cgi-bin', '.', '..');
$dh = @opendir($path);
while (false !== ($file = readdir($dh))) {
if (!in_array($file, $ignore)) {
if (dir_is_empty("$path/$file")) {
if (is_dir("$path/$file")) {
echo "<li>$path/$file</li>";
getDirectory("$path/$file");
}
} else {
echo "<ul>";
if (is_dir("$path/$file")) {
echo "<li>$path/$file</li>";
getDirectory("$path/$file");
}
echo "</ul>";
}
}
}
closedir($dh);
}
getDirectory(".");