PHP遞迴和非遞迴遍歷資料夾下檔案
阿新 • • 發佈:2019-01-02
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;