在面试中我们经常遇到这个题目:PHP遍历一个文件夹下的所有文件和子文件夹。这个题目有好多种解决方法,但大致思路都一样,采用递归。
- /**
- *
- * PHP遍历输出一个文件夹下的所有文件
- *
- * @param String $path
- */
- public function dir_file($path){
- if(is_file($path)){
- echo $path;
- }
- if(!is_dir($path)){
- return false;
- }
- $handle = opendir($path);
- while(false !== ($foldeordir = readdir($handle))){
- if($foldeordir != "." && $foldeordir != ".."){
- if(is_dir($path."/".$foldeordir)){
- $this->dir_file("{$path}/{$foldeordir}");
- }elseif(is_file("{$path}/{$foldeordir}")){
- echo $foldeordir;
- }
- }
- }
- closedir($handle);
- }