php创建目录,删除文件夹及查找不合法的目录并删除
//$pattern = "/file-([0-2]d{3})-([1-9]d?)/"; 这个正则表达式,对文件夹的月日进行捕获,再进一步判断处理
02 for($i =2005;$i
03 {
04 for($j = 1;$j
05 {
06 $dest_dir = "text/file-".$i."-$j";
07 if(!is_dir($dest_dir)) mkdir($dest_dir,0777);
08 }
09 }
10 //创建一些不满足条件的文件夹
11
12 for($t = 0;$t
13 {
14 $dest_dir = "text/file-".$t;
15 if(!is_dir($dest_dir)) mkdir($dest_dir,0777);
16 }
17
18 //遍历文件夹处理 .
19 function listFile($dir)
20 {
21 $a = array();
22 $handle = opendir($dir);
23 while($file = readdir($handle))
24 {
25 handle_dir($dir,$file,&$a);
26 }
27
28 echo "the rege_array is ";
29 print("
");");30 print_r($a);
31 print("
32 }
33
34 function handle_dir($dir,$file,$a)
35 {
36
37 if($file == "." || $file == "..") return ;
38 $minYear = 2008;
39 $maxDay = 13;
40
41 $pattern = "/file-([0-2]d{3})-([1-9]d?)/";
42 $destPath = $dir."/".$file;
43
44 if(!is_dir($destPath))
45 {
46 //echo "$destPath is not a dir ;";
47 return;
48 }
49
50 //删除不满足格式的文件
51 if(!preg_match($pattern,$file))
52 {
53 //echo "$fileis not the right rege. the program will unlink -- $destPath --
";
54 // unlink($destPath);
55 return;
56 }
57
58 preg_match_all($pattern,$file,$matchs);
59
60 //echo "$file is the right rege";
61 //print_r($matchs);
62 //echo "the year is ".$matchs[1][0]." and the day is ".$matchs[2][0]."";
63 if(intval($matchs[1][0]) >$minYear && intval($matchs[2][0])
64 {
65 $a[]= $destPath;
66 }else { //不满足条件的
67 //unlink($destPath);
68
69 }
70 }
71
72 listFile("text");