遍历文件夹下面的所有文件

1、面试经常被问到遍历所有文件的题目,在这里鄙人不才,写了一个,自己测试了一下,还算可以,如果有需要的可以借鉴一下

 1 <?php
 2 /*
 3 *遍历目录下面的所有文件和目录
 4 *@param $filename 目录或者文件
 5 *@param $level 目录级别
 6 *返回所有目录和文件,或者false
 7 */
 8 function getAllFiles($filename,$level=0){
 9 
10 //初始化目录,为了保存遍历出来的目录和文件
11 static $dirs = array('dir'=>array(),'file'=>array());
12 
13 if(is_dir($filename)){
14 
15 //如果是目录则对目录进行遍历
16 foreach(glob($filename.'/*') as $f){
17 
18 if(is_dir($f)){
19 
20 //对子目录递归遍历
21 getAllFiles($f,$level+1);
22 
23 }else{
24 
25 //保存子目录的文件
26 $dirs['file'][$level][] = $f;
27 
28 }
29 }
30 
31 //保存目录
32 $dirs['dir'][$level][] = $filename;
33 
34 }else if(is_file($filename)){
35 
36 //保存文件
37 $dirs['file'][$level][] = $filename;
38 
39 }else{
40 
41 return false;
42 }
43 //返回所有文件和目录
44 return $dirs;
45 
46 }
47 
48 echo '<pre>';
49 echo var_export(getAllFiles('../bui'));

 

posted @ 2016-09-12 20:51  循环源圈  阅读(345)  评论(0)    收藏  举报