我遇到了以下问题。我有以下递归阅读目录php函数。
<?php
//a simple file tree traversal - takes in a path and returns a nested array
$delim = strstr(PHP_OS, "WIN") ? "\\" : "/";
function retrieveTree($path) {
global $delim;
if ($dir=@opendir($path)) {
while (($element=readdir($dir))!== false) {
if (is_dir($path.$delim.$element) && $element!= "." && $element!= "..") {
$array[$element] = retrieveTree($path.$delim.$element);
} elseif ($element!= "." && $element!= "..") {
$array[] = $element;
}
}
closedir($dir);
}
return (isset($array) ? $array : false);
}
?>
此功能取自http://devzone.zend.com/283/recursion-in-php-tapping-unharnessed-power/ 它读取目录及其子目录,例如:
foo/baz
foo/baz/bop
foo/baz/bop/file4.txt
foo/baz/file2.txt
etc/
它将创建一个包含目录和文件格式的数组。
效果很好,但我喜欢创建目录树。如何更改此函数以创建如下结构的列表。
<ul>
<li>foo
<ul>
<li>baz
...
</ul>
</li>
...
<li>etc
...
</ul>
我尝试了很多没有成功的事情。