如何在PHP中从dir显示文件夹和子文件夹

Ric*_*tar 5 php directory

我试图得到一个文件夹和子文件夹的列表,我有以下,允许我获取文件夹和子文件夹,但我需要它像以下我一直在尝试,但我不知道我会得到如何整理周围.

Root/
Root/Images
Root/Images/UserImages

Root/Text/
Root/Text/User1/
Root/Text/User1/Folder2
Run Code Online (Sandbox Code Playgroud)

但在这个方面它的显示是这样的

Root/css/
tree/css/
js/
images/
Run Code Online (Sandbox Code Playgroud)

PHP代码:

    function ListFolder($path)
{

    $dir_handle = @opendir($path) or die("Unable to open $path");

    //Leave only the lastest folder name
    $dirname = end(explode("/", $path));

    //display the target folder.
    echo ("$dirname/");
    while (false !== ($file = readdir($dir_handle)))
    {
        if($file!="." && $file!="..")
        {
            if (is_dir($path."/".$file))
            {
                //Display a list of sub folders.
                ListFolder($path."/".$file);
                echo "<br>";
            }
        }
    }


    //closing the directory
    closedir($dir_handle);
}

    ListFolder("../");
Run Code Online (Sandbox Code Playgroud)

谢谢

Sel*_*t0r 4

将目录名称收集到数组中,而不是echo直接使用它们。使用sort数组和 -loopforeach来打印列表。

因此,echo ("$dirname/");您可以使用$dirnames[] = $dirname;(使 $dirnames 全局化并在第一次调用“ListFolder”之前对其进行初始化)。然后,在“ListFolder”递归运行之后,您将执行sort($dirnames);类似的输出:

foreach ($dirnames as $dirname)
{
  echo $dirname . '<br />';
}
Run Code Online (Sandbox Code Playgroud)