PHP遍历文件目录与清除目录中文件的实例代码

发布时间:2020-10-30编辑:脚本学堂
介绍下,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; 
    } 
     //by www.jb200.com
    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、php遍历目录中所有文件
 

复制代码 代码示例:
<html> 
<head> 
<meta http-enquiv="Content-Type" content="text/html;charset=gb2312"> 
<title>查看目录_www.jb200.com</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(emptyempty($_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>