使用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安装攻略:常见问题解答(三)
Oct 09 PHP
PHP 常见郁闷问题答解
Nov 25 PHP
php cookie 作用范围?不要在当前页面使用你的cookie
Mar 24 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
PHP自动生成表单代码分享
Jun 19 PHP
CI(Codeigniter)的Setting增强配置类实例
Jan 06 PHP
php 使用curl模拟登录人人(校内)网的简单实例
Jun 06 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
php常用日期时间函数实例小结
Jul 04 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 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
用Zend Encode编写开发PHP程序
2006/10/09 PHP
用PHP+MySql编写聊天室
2006/10/09 PHP
php中长文章分页显示实现代码
2012/09/29 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
python中scikit-learn机器代码实例
2018/08/05 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
提高python代码运行效率的一些建议
2020/09/29 Python
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
Delphi工程师笔试题
2013/09/21 面试题
财务人员的自我评价范文
2014/03/03 职场文书
会计师事务所实习证明
2014/11/16 职场文书
安全责任书
2015/01/29 职场文书
新课程改革心得体会
2016/01/22 职场文书
python状态机transitions库详解
2021/06/02 Python
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记
MySql重置root密码 --skip-grant-tables
2022/04/11 MySQL