我遇到了以下问题。我有以下递归读取目录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>
我尝试了很多事情都没有成功。