PHP之目录遍历

 1 <?php
 2 
 3     header("content-type:text/html; charset=utf8");
 4     //递归查看目录文件
 5 
 6     $pathname = "D:/qq";
 7     //调用递归函数
 8     $res = diGui($pathname);
 9     var_dump($res);
10 
11     function  diGui($pathname, $deep=0){
12         //存储遍历过的所有文件内容
13         static $file_list = array();
14 
15         //打开目录句柄
16         $handle = opendir($pathname);
17         while (false !== ($filename =readdir($handle))) { //false!== 防止出现目录文件名字为0的情况
18             //过滤再文件夹的点点文件夹
19             if ($filename == '.' || $filename == '..') {
20                 continue;
21             }
22 
23 
24             //输出当前目录信息
25             //echo str_repeat("&nbsp;", $filename)."<br>";
26 
27             //声明数组变量存储一次遍历的目录信息
28             $file = array();
29             $file['filename'] = $filename;
30             $file['deep'] = $deep;
31 
32             //把以上信息存储到静态数组中
33             $file_list[] = $file;
34 
35             if (is_dir($pathname.'/'.$filename)) {
36                 //可变函数
37                 $current_func = __FUNCTION__ ;//获得当前函数名称
38                 $current_func($pathname.'/'.$filename, $deep+1);
39             }
40         }
41         // closedir — 关闭目录句柄
42         closedir($handle);
43 
44         return $file_list;
45     }

 

posted @ 2016-12-12 18:33  被时光移动的城市  阅读(594)  评论(0编辑  收藏  举报