使用PHP遍历文件目录与清除目录中文件的实现详解


Posted in PHP onJune 24, 2013

今天无聊中练习了一下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> 

PHP 相关文章推荐
Smarty安装配置方法
Apr 10 PHP
PHP常用函数小技巧
Sep 11 PHP
深入php-fpm的两种进程管理模式详解
Jun 03 PHP
解析PHP 使用curl提交json格式数据
Jun 29 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
PHP之预定义接口详解
Jul 29 PHP
php通过排列组合实现1到9数字相加都等于20的方法
Aug 03 PHP
Zend Framework教程之视图组件Zend_View用法详解
Mar 05 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
简单实现php上传文件功能
Sep 21 PHP
php实现多站点共用session实现单点登录的方法详解
Sep 18 PHP
PHP copy函数使用案例代码解析
Sep 01 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
Jun 24 #PHP
PHP中的函数-- foreach()的用法详解
Jun 24 #PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 #PHP
PHP错误提示的关闭方法详解
Jun 23 #PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 #PHP
关于zend studio 出现乱码问题的总结
Jun 23 #PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 #PHP
You might like
PHP伪静态页面函数附使用方法
2008/06/20 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
php随机取mysql记录方法小结
2014/12/27 PHP
PHP使用适合阅读的格式显示文件大小的方法
2015/03/05 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
php实现递归的三种基本方式
2020/07/04 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
js身份证验证超强脚本
2008/10/26 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
基于javascript显示当前时间以及倒计时功能
2016/03/18 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
Python爬取国外天气预报网站的方法
2015/07/10 Python
Python实现FTP文件传输的实例
2019/07/07 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
Python中qutip用法示例详解
2020/10/02 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
大学生先进事迹材料
2014/02/16 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
校园活动宣传方案
2014/03/28 职场文书
就业推荐表院系意见
2015/06/05 职场文书
MySQL 十大常用字符串函数详解
2021/06/30 MySQL
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android