0

我遇到了以下问题。我有以下递归读取目录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>

我尝试了很多事情都没有成功。

4

0 回答 0