PHP递归遍历文件夹
一直想了解下php这门编程语言,这几天有时间就找了几个视频看了下。在练习php语法时,写了个递归遍历文件夹的函数,有两个地方需要特别注意的(开始时没注意到这两个问题,怎么都运行不出来结果),一个是遍历出来的“.”和“..”这两个文件夹一定不能进行遍历,要进行过滤;另一个就是遍历出来的文件夹一定要将其与其上级路径进行字符串的拼接,否则is_dir()函数将判断不出来。
PHP递归遍历文件夹
1 /** 2 * 递归遍历文件夹 3 * @param $path 表示路径的字符串 4 */ 5 function foreach_dir($path){ 6 //判断该路径是否存在,如果存在则进行后续操作,不存在则提示 7 if(file_exists($path)){ 8 $dirArr = scandir($path);//获取该路径下所有文件,返回一个数组赋值给$dirArr 9 //遍历数组$dirArr中的每一个文件 10 foreach($dirArr as $value){ 11 //特别注意:“.”和“..”这两个文件夹一定要屏蔽掉,否则就不仅仅是递归遍历你给定的目录了 12 if($value != "." && $value != ".."){ 13 //特别注意:一定要进行路径字符串的拼接,不然就麻烦了 14 $curDir = $path."/".$value; 15 echo "$curDir<br>";//输出遍历到的文件或是文件夹 16 //判断遍历元素是否为文件夹,如果是文件夹则进行递归遍历,否则不做操作 17 if(is_dir($curDir)){ 18 foreach_dir($curDir);//递归遍历 19 } 20 } 21 } 22 } else { 23 echo "路径不存在!"; 24 } 25 }