PHP递归和非递归遍历文件夹下文件

function readDirFiles($dir){ $files= []; $queue=[realpath($dir)]; $currentPath = current($queue); while($currentPath) { $path = $currentPath; if (is_dir($path) && $handle = opendir($path)) { while ($file = readdir($handle)) { if ($file == ‘.‘ || $file == ‘..‘) continue; $filepath = $path . ‘/‘ . $file; if (is_dir($filepath)) { $queue[] = $filepath; }else { $files[] = $filepath; } } closedir($handle); } $currentPath = next($queue); } return $files;}print_r($readDirFiles(‘./‘));exit;function readDirFiles2($path, &$files = []){ if (is_dir($path) && $handle = opendir($path)) { while ($file = readdir($handle)) {// if(strpos($file, ‘.‘) === 0) {// continue;// } if ($file == ‘.‘ || $file == ‘..‘) continue; $filePath = $path . ‘/‘ . $file; if (is_dir($filePath)) { readDirFiles2($filePath, $files); }else { $files[] = $filePath; } } closedir($handle); } return $files;}readDirFiles2(‘./‘, $paths);print_r($paths);exit;

相关文章