使用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实现ping
Oct 09 PHP
PHP编程之高级技巧——利用Mysql函数
Oct 09 PHP
PHP面向对象分析设计的61条军规小结
Jul 17 PHP
php中随机显示图片的函数代码
Jun 23 PHP
PHP解析RSS的方法
Mar 05 PHP
基于PHP技术开发客服工单系统
Jan 06 PHP
PHP简单判断手机设备的方法
Aug 23 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 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的ob_start();控制您的浏览器cache!
2006/11/25 PHP
PHP遍历并打印指定目录下所有文件实例
2014/02/10 PHP
php无限遍历目录示例
2014/02/21 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
PHP调用Mailgun发送邮件的方法
2017/05/04 PHP
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
Nodejs实现WebSocket代码实例
2020/05/19 NodeJs
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python进阶篇之字典操作总结
2016/11/16 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
党员干部承诺书范文
2014/03/25 职场文书
旅游文化节策划方案
2014/06/06 职场文书
推普周活动总结
2014/08/28 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
教师节大会主持词
2015/07/06 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
vue cli4中mockjs在dev环境和build环境的配置详情
2022/04/06 Vue.js