使用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(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>

(0)

相关推荐

  • PHP递归遍历指定目录的文件并统计文件数量的方法

    本文实例讲述了PHP递归遍历指定目录的文件并统计文件数量的方法.分享给大家供大家参考.具体实现方法如下: <?php //递归函数实现遍历指定文件下的目录与文件数量 function total($dirname,&$dirnum,&$filenum){ $dir=opendir($dirname); echo readdir($dir)."<br>"; //读取当前目录文件 echo readdir($dir)."<br>&qu

  • PHP遍历某个目录下的所有文件和子文件夹的实现代码

    复制代码 代码如下: <?php function read_all_dir ( $dir )    {        $result = array();        $handle = opendir($dir);        if ( $handle )        {            while ( ( $file = readdir ( $handle ) ) !== false )            {                if ( $file != '.'

  • php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码

    <pre> <?php /********************** 一个简单的目录递归函数 第一种实现办法:用dir返回对象 ***********************/ function tree($directory) { $mydir=dir($directory); echo "<ul>\n"; while($file=$mydir->read()){ if((is_dir("$directory/$file"))

  • PHP遍历并打印指定目录下所有文件实例

    复制代码 代码如下: <?php//功能:遍历并打印指定目录下所有文件 function scan_dir($dir_name,$dir_flag=1) { static $FILE_COUNT=1;                //记录文件数目 初值为1 目录名称不记 $FILE_COUNT--;                       //每调用一次scan_dir()函数自减1 @$dir_handle=opendir($dir_name);     //抑制错误信息显示  便于自定

  • php遍历目录与文件夹的多种方法详解

    遍历目录或遍历目录下指定类型的文件,这是每一个童鞋在写程序的时候难免会用到的.PHP本身也提供了很多灰常有用的函数,正确地使用它们,不会有错滴.下面就我个人学习过程中的一些总结,希望对想学PHP的童鞋有所帮助.本函数可以列出指定目录下所有的文件(包括子目录下的) 复制代码 代码如下: function getfiles($path){ foreach(scandir($path) as $afile){if($afile=='.'||$afile=='..') continue; if(is_d

  • PHP使用glob函数遍历目录或文件夹的方法

    本文实例讲述了PHP使用glob函数遍历目录或文件夹的方法.分享给大家供大家参考.具体分析如下: 一说到php遍历目录我们很多朋友会想到是opendir与readdir,这样就可以遍历目录并显示文件,但在php中有一个更简洁的遍历目录的函数glob估计很少有人知道此函数,不过我觉得比起opendir与readdir要简单多了. PHP glob函数的使用:glob-寻找与模式匹配的文件路径. 例子,代码如下: 复制代码 代码如下: <?php $fileList=glob('*.*'); for

  • php遍历删除整个目录及文件的方法

    本文实例讲述了php遍历删除整个目录及文件的方法.分享给大家供大家参考.具体分析如下: 我们可以使用RecursiveDirectoryIterator 和 RecursiveIteratorIterator删除目录和子目录及文件,子目录将先与父目录删除 <?php function cleanup_directory($dir) { $iter = new RecursiveDirectoryIterator($dir); foreach (new RecursiveIteratorItera

  • php遍历替换目录下文件指定内容的方法

    本文实例讲述了php遍历替换目录下文件指定内容的方法.分享给大家供大家参考,具体如下: 在php中目录访问需要遍历了然后文件需要一个个打开进行访问操作了,下面我们来看一段php 替换目录下文件指定内容,具体如下: /**************************** * 获取目录下的所有文件 * [$dir] 文件夹路径 ****************************/ function deepScanDir($dir) { $fileArr = array (); $dirA

  • PHP不用递归遍历目录下所有文件的代码

    实现代码: /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ function scanfiles($dir) { if (! is_dir ( $dir )) return array (); // 兼容各操作系统 $dir = rtrim ( str_replace ( '\\', '/', $dir ), '/' ) . '/'; // 栈,默认值为传入的目录 $

  • php实现遍历目录并删除指定文件中指定内容

    现在正坐在安静的寝室里,寒假俨然已经离我而去了--今天发的是我寒假里搞的最后一次学习,之后的时间就一直在看海贼王了. 以前写过一个C语言的遍历目录+复制文件的程序,很长很复杂,现在用PHP一样可以实现遍历目录,而代码就短了不少.这个程序目的是遍历目录,找到所有指定文件名的文件,并删除其中指定的字符串. 复制代码 代码如下: <?php  //功能:删除指定目录(包括子目录)下所有指定文件中指定字符串 $tmpfiledir = $_SERVER["DOCUMENT_ROOT"].

  • PHP 远程文件管理,可以给表格排序,遍历目录,时间排序

    复制代码 代码如下: <?php $rootdir="./"; $spacenum=0; $filenum=0; $allfilesize=0; echo "<h1>文件管理调试测试</h1>"; echo "<a href=''>重置</a>"; readLogDir($rootdir); echo "<hr>"; echo "Total files

  • PHP采用自定义函数实现遍历目录下所有文件的方法

    目录的遍历是PHP程序设计中经常会用到的一个功能,很多PHP项目都有这一功能模块.今天本文就来实例解析一下PHP采用自定义函数实现遍历目录下所有文件的方法.具体方法如下: 方法一:使用readir()遍历目录 实现代码如下: function listDir($dir) { if(is_dir($dir)) { if($handle = opendir($dir)) { while($file = readdir($handle)) { if($file != '.' && $file !

  • PHP遍历目录文件的常用方法小结

    本文实例总结了PHP遍历目录文件的常用方法.分享给大家供大家参考,具体如下: 测试算法(源代码经过本站工具http://tools.jb51.net/code/jb51_php_format进行格式化处理,以便于读者阅读) 算法1.简短系 foreach(glob('*.*') as $filename) { echo 'Filename:'.$filename.; } 算法2.规矩系 if($handle = opendir('C:\\Inetpub\\wwwroot\\test\\')){

随机推荐