使用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 相关文章推荐
一个简单的PHP&amp;MYSQL留言板源码
Jul 19 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
PHP缓存技术的使用说明
Aug 06 PHP
有关php运算符的知识大全
Nov 03 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
PHP中变量引用与变量销毁机制分析
Nov 15 PHP
php堆排序实现原理与应用方法
Jan 03 PHP
利用php获得flv视频长度的实例代码
Oct 26 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
laravel5实现微信第三方登录功能
Dec 06 PHP
PHP实现统计代码行数小工具
Sep 19 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 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
ajax取消挂起请求的处理方法
2013/03/18 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
python实现连接mongodb的方法
2015/05/08 Python
python清除字符串里非数字字符的方法
2015/07/02 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
python如何为创建大量实例节省内存
2018/03/20 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
CSS3的first-child选择器实战攻略
2016/04/28 HTML / CSS
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
一套英文Java笔试题面试题
2016/04/21 面试题
研究生考核个人自我鉴定
2014/03/27 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js