燕十八 公益PHP培训
课堂地址:YY频道88354001
学习社区:www.zixue.it
1 <?php
2 /*
3 级联创建目录 递归
4 */ mkdir('./a/b/c/d/e/f',0777,true)?'OK':'fail'; 这行代码可以不要递归级联创建目录
5
6 /*
7
8 function mk_dir($path){
9 if(is_dir($path)){ //要创建的目录存在,直接返回true
10 return true;
11 }
12
13 if(is_dir(dirname($path))) { //父目录存在 创建目录
14 return mkdir($path);
15 }
16
17 mk_dir(dirname($path)); //父目录不存在 找到入口 此时递归
18 return mkdir($path);
19 }
20
21 echo mk_dir('./a/b/c/d/e')?'OK':'fail';
22 */
23 //////////////////////////////
24 /*
25 级联创建目录 迭代
26 */
27 /*
28 function mk_dir($path) {
29 $arr = array();
30
31 while(!is_dir($path)) {
32 //如果!is_dir($path)为真,则需要创建$path目录
33 array_push($arr,$path); //推入数组 入栈
34 $path = dirname($path); //得到$path父目录进行循环
35 }
36
37 if(empty($arr)) {
38 return true;
39 }
40
41 while(count($arr)) {
42 $tmp = array_pop($arr); //出栈
43 mkdir($tmp);
44 }
45 }
46
47 mk_dir('./a/b/c/d/e');
48 */
49
50
51 ////////级联删除目录 递归
52 /*
53 function del_dir($path) {
54 if(!is_dir($path)){
55 return NULL;
56 }
57
58 $dh = opendir($path);
59
60 while(($row = readdir($dh)) != false) {
61 if($row == '.' || $row == '..') {
62 continue;
63 }
64 if(!is_dir($path . '/' . $row)) {
65 unlink($path .'/' . $row);
66 }else {
67 del_dir($path . '/' . $row); //递归子目录
68 }
69 }
70
71 closedir($dh);
72 rmdir($path);
73
74 echo '删了',$path,'<br />';
75 return true;
76 }
77
78 del_dir('./a')?'OK':'fail';
79 */
80
81
82 //级联读取目录 递归
83
84 function recdir($path,$lev=1) {
85 $dh = opendir($path);
86
87 while(($row = readdir($dh)) !== false) {
88 if($row == '.' || $row == '..') {
89 continue;
90 }
91
92 echo '├',str_repeat('─',$lev),$row,'<br />';
93
94 // 如果$row还是目录 怎么办?
95 if(is_dir($path . '/' .$row)) {
96 recdir($path . '/' .$row,$lev+1);
97 }
98 }
99
100 closedir($dh);
101 }
102
103 recdir('F:\wamp\www\test\1');
104 ?>