php递归目录读取

时间:2013-06-09 16:38:20

标签: php recursion

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

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

0 个答案:

没有答案