通过PHP中的目录树递归

php*_*plz 2 php directory recursion

我有一组深度至少为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);
Run Code Online (Sandbox Code Playgroud)

Pek*_*ica 17

查看新的RecursiveDirectoryIterator.

它仍然远非完美,因为你不能订购搜索结果和其他东西,但只是得到一个文件列表,它没关系.

有一些简单的例子可以帮助您开始使用手册,如下所示:

<?php

$path = realpath('/etc');

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

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

?>
Run Code Online (Sandbox Code Playgroud)