使用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 相关文章推荐
五款常用mysql slow log分析工具的比较分析
May 22 PHP
php处理文件的小例子(解压缩,删除目录)
Feb 03 PHP
PHP数据类型的总结分析
Jun 13 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
Jan 21 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
php7安装mongoDB扩展的方法分析
Aug 02 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
Oct 15 PHP
php面向对象程序设计入门教程
Jun 22 PHP
PHP代码覆盖率统计详解
Jul 22 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如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
表单内同名元素的控制
2006/11/22 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
jQuery UI插件自定义confirm确认框的方法
2015/03/20 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
2016/01/16 Python
Python 类的继承实例详解
2017/03/25 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
妇科医生自荐信
2013/11/05 职场文书
大学生入党思想汇报
2014/01/14 职场文书
授权收款委托书范本
2014/10/10 职场文书
护士2014年终工作总结
2014/11/11 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
离职告别感言
2015/08/04 职场文书
教师培训学习心得体会
2016/01/21 职场文书
小学语文教学反思范文
2016/03/03 职场文书
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
redis lua限流算法实现示例
2022/07/15 Redis