PHP遍历文件目录与清除目录中的文件
今天无聊中练习了一下PHP遍历文件目录的程序,编写了以下两个程序,不过质量不是很好,轻拍~~~
?
1、清除PHP缓存文件
?
?
<?php function read_dir($dir,$file) { $a =strpos($file,".php"); if($a>0) { unlink($dir . $file); echo "delete $dir$file <br>"; return true; } if(strpos($file,".") === 0 || strpos($file,".") !== false ) return true; if(strpos($file,".") === false || strpos($dir,"/") === false) { $dir = $dir . $file . "/"; if(!is_dir($dir)) return false; $dh = opendir($dir); while(($file = readdir($dh)) != false) { read_dir($dir,$file); //递归调用 } } } function clear_caches() { $dir = "./temp/"; //要清除的PHP缓存文件目录 if(!is_dir($dir)) die("It is not a dir"); $dh = opendir($dir); while(($file = readdir($dh) )!=false) { //var_dump($file); read_dir($dir,$file); } } ?>
?
?
2、遍历目录中所有文件
?
<html> <head> <meta http-enquiv="Content-Type" content="text/html;charset=gb2312"> <title>查看目录</title> </head> <body> <table width="600" align="center"> <tr> <th width="50%">文件名</th> <th width="25%">修改时间</th> <th width="25%">文件大小(k)</th> </tr> <?php //$dir = "./admin/"; $dir = "c:/"; $up_dir = "上级目录"; $up_url = $dir; if(isset($_REQUEST['act']) && $_REQUEST['act']=='list_dir') { if(empty($_REQUEST['dir'])) { $up_dir="目录为空!"; } $dir = isset($_REQUEST['dir']) ? $_REQUEST['dir'] : $dir; } if(!is_dir($dir)) { $up_dir="无效目录!"; } ?> <tr> <td colspan="3"> <?php if(strpos($up_dir,"上级目录")!==false) { //if($up_url=="") echo $up_dir; if($dir != "./admin/") { $up_url = substr($dir,0,-1); $k = strrpos($up_url,"/"); $up_url = substr($up_url,0,$k-strlen($up_url)); $up_url = $up_url ."/"; } echo "<a href=\"test.php?act=list_dir&dir=$up_url\">$up_dir</a>"; } else { echo $up_dir; die(); } ?> </td> </tr> <?php $up_dir = $dir; $dh = opendir($dir); while(($file=readdir($dh)) != false) { if($file != "." && $file != ".." && $file != ".svn" ) { if(strpos($file,".") !==false) { $time = date("Y-m-d H:i:s", filectime($dir . $file)); $size = filesize($dir . $file)/1000; echo "<tr><td>$file</td><td>$time</td><td>$size</td></tr>"; } else { $time = date("Y-m-d H:i:s.", filectime($dir . $file)); $size = filesize($dir . $file)/1000; $dir = $dir . $file ."/"; echo "<tr><td><a href =\"test.php?act=list_dir&dir=$dir\">$file</a></td><td>$time</td><td>$size</td></tr>"; $dir = $up_dir; } } } ?> </table> <?php die(); ?> </body> </html>
?
?
http://zeroneta.iteye.com/blog/1173071