php - 通过 PHP 中的目录树递归

标签 php recursion directory

我有一组深度至少为 4 或 5 层的文件夹。我希望尽可能深入地递归目录树,并遍历每个文件。我已经获得了进入第一组子目录的代码,但没有更深的目录,我不确定为什么。有什么想法吗?

$count = 0;
$dir = "/Applications/MAMP/htdocs/site.com";
function recurseDirs($main, $count){
    $dir = "/Applications/MAMP/htdocs/site.com";
    $dirHandle = opendir($main);
    echo "here";
    while($file = readdir($dirHandle)){
        if(is_dir($file) && $file != '.' && $file != '..'){
            echo "isdir";
            recurseDirs($file);
        }
        else{
            $count++;
            echo "$count: filename: $file in $dir/$main \n<br />";
        }
    }
}
recurseDirs($dir, $count);

最佳答案

查看新的 RecursiveDirectoryIterator .

它还远非完美,因为您无法对搜索结果和其他内容进行排序,但仅获取文件列表就可以了。

手册中有一些简单的示例可以帮助您入门:

<?php

$path = realpath('/etc');

$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), 
RecursiveIteratorIterator::SELF_FIRST);

foreach($objects as $name => $object){
    echo "$name\n";
}

?>

关于php - 通过 PHP 中的目录树递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2528848/

相关文章:

php - 我在php上的用户定义的navigation()无法正常工作,我无法在代码中找到错误

php - 需要帮助用 cookie 完成登录脚本

c - 为什么这段代码是正确的?

c++ - 构建/组织文件系统文件夹的链表

php - CakePHP:如何在评论帖子期间停止插入/添加 html 标签?

php - 如何从多维数组中删除空数组?

c - 递归 BubbleSort 给出错误的输出

c++ - 给定头节点,如何递归地找到链表中的最大项?

vb.net - 从 Windows 窗体打开空目录 - VB.net

python - 运行 python unit-test 在要导入的正确目录中找不到我的文件