使用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语法(1)
Oct 09 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
Nov 04 PHP
php表单敏感字符过滤类
Dec 08 PHP
WordPress中限制非管理员用户在文章后只能评论一次
Dec 31 PHP
thinkPHP实现MemCache分布式缓存功能
Mar 23 PHP
php与python实现的线程池多线程爬虫功能示例
Oct 12 PHP
PHP  Yii清理缓存的实现方法
Nov 10 PHP
PHP经典实用正则表达式小结
May 04 PHP
PHP实现的日历功能示例
Sep 01 PHP
PHP goto语句用法实例
Aug 06 PHP
php校验公钥是否可用的实例方法
Sep 17 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
Python实现保证只能运行一个脚本实例
2015/06/24 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
python实现人民币大写转换
2018/06/20 Python
TensorFlow实现Logistic回归
2018/09/07 Python
pandas删除指定行详解
2019/04/04 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
Java程序员常见面试题
2015/07/16 面试题
住房租房协议书
2014/08/20 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
汽车转让协议书
2015/01/29 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
庆七一活动简报
2015/07/20 职场文书
职工培训工作总结
2015/08/10 职场文书
女性励志书籍推荐
2019/08/19 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
golang在GRPC中设置client的超时时间
2021/04/27 Golang
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技