使用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开源建站平台小结
Apr 22 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
Oct 27 PHP
几个有用的php字符串过滤,转换函数代码
May 01 PHP
div li的多行多列 无刷新分页示例代码
Oct 16 PHP
php版淘宝网查询商品接口代码示例
Jun 17 PHP
PHP判断浏览器、判断语言代码分享
Mar 05 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
Jun 30 PHP
Yii的Srbac插件用法详解
Jul 14 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
php连接MSsql server的五种方法总结
Mar 04 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调用Java对象的方法
2006/10/09 PHP
php基础知识:控制结构
2006/12/13 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
js Date概念详细介绍
2013/11/22 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
jquery弹出遮掩层效果【附实例代码】
2016/04/28 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
2018/03/13 Python
python使用turtle绘制分形树
2018/06/22 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
Python如何安装第三方模块
2020/05/28 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
python中数字是否为可变类型
2020/07/08 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
实现向右循环移位
2014/07/31 面试题
正科级干部考察材料
2014/05/29 职场文书
教师节倡议书2015
2015/04/27 职场文书
成绩单家长意见
2015/06/03 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
《风筝》教学反思
2016/02/23 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
python绘制箱型图
2021/04/27 Python
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis
vue+iview实现手机号分段输入框
2022/03/25 Vue.js