使用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 HTML JavaScript MySQL代码如何互相传值的方法分享
Sep 30 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
PHP中使用localhost连接Mysql不成功的解决方法
Aug 20 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Nov 04 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
PHP和Mysql中转UTF8编码问题汇总
Oct 10 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
Aug 28 PHP
form自动提交实例讲解
Jul 10 PHP
php读取本地json文件的实例
Mar 07 PHP
php高清晰度无损图片压缩功能的实现代码
Dec 09 PHP
php生成HTML文件的类方法
Oct 11 PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 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
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
Django工程的分层结构详解
2019/07/18 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
通信工程毕业生求职信
2013/11/16 职场文书
益达广告词
2014/03/14 职场文书
青安岗事迹材料
2014/05/14 职场文书
个人租房协议书范本
2014/09/30 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
Python OpenCV形态学运算示例详解
2022/04/07 Python