我正在编写一个递归计算所有文件和文件夹的脚本。我尝试了两种方法,但每种方法都返回不同的值:脚本 1:2376 脚本 2:2178
这是两个脚本:
$source = 'folder';
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
foreach($files as $file) {
$result[] = $file.'<br />';
}
echo count($result).'<br />';
function listFolders($dir) {
if($dh = opendir($dir)) {
$files = Array();
$inner_files = Array();
while($file = readdir($dh)) {
if($file != "." && $file != "..") {
if(is_dir($dir . "/" . $file)) {
$inner_files = listFolders($dir . "/" . $file);
if(is_array($inner_files)) $files = array_merge($files, $inner_files);
} else {
array_push($files, $dir . "/" . $file);
}
}
}
closedir($dh);
return $files;
}
}
foreach (listFolders($source) as $key=>$file){
$result2[] = $file ."<br />";
}
echo count($result2);
其中一个脚本是否正确?我错过了什么?