使用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中把stdClass Object转array的几个方法
May 08 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
用PHP解决的一个栈的面试题
Jul 02 PHP
smarty内置函数config_load用法实例
Jan 22 PHP
Laravel 5 框架入门(一)
Apr 09 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
在WordPress中使用wp-cron插件来设置定时任务
Dec 10 PHP
PHP实现的oracle分页函数实例
Jan 25 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
Feb 04 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
Oct 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
php 获取全局变量的代码
2011/04/21 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
jquery选择器简述
2015/08/31 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
2018/04/17 jQuery
vue生命周期实例小结
2018/08/15 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
物业管理应届生求职信
2013/10/28 职场文书
文明市民先进事迹
2014/05/15 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
2014年居委会工作总结
2014/12/09 职场文书
先进个人材料怎么写
2014/12/30 职场文书
用python自动生成日历
2021/04/24 Python
Python基础教程,Python入门教程(超详细)
2021/06/24 Python
修改并编译golang源码的操作步骤
2021/07/25 Golang