本文主要和大家分享幾種php檔案夾遍曆的方法,希望能協助到大家。
函數
function dirTree(){
if(!is_dir($path)) return []; $files = []; $dir = opendir($path); while($file = readdir($dir)) { if($file == '.' || $file == '..') continue; $new_path = trim($path, '/').'/'.trim($file, '/'); $files[] = $new_path; if(is_dir($new_path)){ $files = array_merge($files, $this->ergodicDir2($new_path));
}
}
closedir($dir); return $files;
}
Directory類
function dirTree(){
if(!is_dir($path)) return []; $files = []; $dir_h = dir($path); while($file = $dir_h->read()){ if($file == '.' || $file == '..') continue; $new_path = trim($path, '/').'/'.trim($file, '/'); $files[] = $new_path; if(is_dir($new_path)){ $files = array_merge($files, $this->ergodicDir3($new_path));
}
} $dir_h->close(); return $files;
}
迭代器
function dirTree(){
if(!is_dir($path)) return []; $files = []; $dir = new \DirectoryIterator($path); foreach ($dir as $key => $file){ if($file->getFilename() == '.' || $file->getFilename() == '..'){ continue;
} $files[] = $file->getPathname(); if($file->isDir()){ $files = array_merge($files, $this->ergodicDir5($file->getPathname()));
}
} return $files;
}