我有一组深度至少为 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/