使用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 编程安全性小结
Jan 08 PHP
PHP学习笔记之数组篇
Jun 28 PHP
php笔记之:文章中图片处理的使用
Apr 26 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
Jun 20 PHP
php实现高效获取图片尺寸的方法
Dec 12 PHP
PHP开启opcache提升代码性能
Apr 26 PHP
PHP测试成功的邮件发送案例
Oct 26 PHP
PHP编程中的__clone()方法使用详解
Nov 27 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
Apr 18 PHP
PHP抽象类基本用法示例
Dec 28 PHP
php ajax confirm 删除实例详解
Mar 06 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
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
php获取网页请求状态程序示例
2014/06/17 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
jquery和javascript的区别(常用方法比较)
2013/07/04 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
python封装对象实现时间效果
2020/04/23 Python
python实现对csv文件的列的内容读取
2018/07/04 Python
python实现顺序表的简单代码
2018/09/28 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
Python实现搜索算法的实例代码
2020/01/02 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
python字典与json转换的方法总结
2020/12/28 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
Parfumdreams英国:香水和化妆品
2019/05/10 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
铅球加油稿100字
2014/09/26 职场文书
2014年技术部工作总结
2014/12/12 职场文书
Python如何导出导入所有依赖包详解
2021/06/08 Python
mysql的数据压缩性能对比详情
2021/11/07 MySQL
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技