php如何递归遍历文件夹下所有文件

admin 阅读:155 2024-03-01

在一般的PHP面试中,可能会问到这样的一个问题:遍历指定文件夹下所有文件和文件夹的方法;在工作中,也会用到遍历指定 递归遍历文件夹下所有文件的问题。下面我们就来汇总下,希望对大家能够有所帮助;

    	function getFiles($dir){
    	   if(is_dir($dir)){   //判断文件是否是目录。
    		$files = array();
    		if($handle = opendir($dir)){  //打开一个目录,获取目录并赋值给handle
    		   while ( ($file = readdir($handle)) !== false) {  //循环打开目录下的文件
                     $temp = iconv('GBK','utf-8',$dir.'/'.$file); //将windows中的文件编码转译为GBK,不然中文文件会乱码
    			if($file != '.' && $file != '..'){  //避免把$dir的父级目录也读取出来
    			   if(is_dir($temp)){
    				$files[$file] = getFiles($temp);  //如果是目录递归处理
    			   }else{
    				$files[] = $temp;  //是文件放入$files数组
    			   }
    			 }
    		   }
    		   closedir($handle);  //不要忘记关闭文件目录。
    		   return $files;
    		}
    	   }
    	}


声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!