使用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模板,主要想体现一下思路
Dec 25 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
php实现图片添加水印功能
Feb 13 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
destoon二次开发入门示例
Jun 20 PHP
php生成随机颜色方法汇总
Dec 03 PHP
用php守护另一个php进程的例子
Feb 13 PHP
php生成curl命令行的方法
Dec 14 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
May 21 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
YII框架关联查询操作示例
Apr 29 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教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
PHP框架性能测试报告
2016/05/08 PHP
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
ExtJs的Date格式字符代码
2010/12/30 Javascript
window.open不被拦截的实现代码
2012/08/22 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
javascript object array方法使用详解
2012/12/03 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
JS简单计算器实例
2015/01/20 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
2018/12/03 Javascript
Python使用内置json模块解析json格式数据的方法
2017/07/20 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
CSS3基础(RGBa、text-shadow、box-shadow、border-radius)
2012/11/13 HTML / CSS
培训主管的岗位职责
2013/11/23 职场文书
建筑公司文秘岗位职责
2013/11/29 职场文书
师德承诺书2015
2015/04/28 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
MySQL为id选择合适的数据类型
2021/06/07 MySQL
SpringBoot集成Redis的思路详解
2021/10/16 Redis
JVM之方法返回地址详解
2022/02/28 Java/Android
vue封装数字翻牌器
2022/04/20 Vue.js