如何在PHP循环中扫描目录中的目录

时间:2015-12-09 21:49:39

标签: php loops scandir

$dirs = scandir("../public_html/");

$subDirArr=array();

foreach ($dirs as $currentIndex => $currentDir) {


    if (is_dir($currentDir))
        if (!($currentDir[0] == "."))
            echo "<a href='../public_html/$currentDir'>$currentDir</a><br/>";


}

所以我有这个代码扫描我服务器上的public_html目录并回显所有子目录(但不是文件),这样我就有了一个指向子目录的可点击链接列表。

我想要做的是当点击其中一个目录时,让它显示IT'S子目录(如果有的话)。我无法弄清楚如何逻辑地这样做。我可以在循环内的循环中编写一个循环等,但是无论我添加多少个目录,我都希望这个代码能够工作。

我怎么能做到这一点?

最终目的是为我的托管文件/文件夹设置一个菜单系统。

1 个答案:

答案 0 :(得分:0)

这样的事情应该可以解决问题。您可以根据需要调整功能:

function getDirs($root)
{
    foreach (scandir($root) as $dir) {
        if ( ! in_array($dir, ['.', '..'])) {
            $path = realpath($root . DIRECTORY_SEPARATOR . $dir);
            if (is_dir($path)) {
                echo $path . PHP_EOL;
                getDirs($path);
            }
        }
    }
}

getDirs("../public_html/");