使用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 相关文章推荐
一个oracle+PHP的查询的例子
Oct 09 PHP
php中随机显示图片的函数代码
Jun 23 PHP
PHP 获取MySQL数据库里所有表的实现代码
Jul 13 PHP
php函数间的参数传递(值传递/引用传递)
Sep 23 PHP
php foreach循环中使用引用的问题
Nov 06 PHP
php生成二维码
Aug 10 PHP
PHP+redis实现添加处理投票的方法
Nov 14 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
浅谈php://filter的妙用
Mar 05 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+MYSQL 出现乱码的解决方法
2008/08/08 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
php数组中包含中文的排序方法
2014/06/03 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
IE 当eval遇上function的处理
2011/08/09 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
Python爬取三国演义的实现方法
2016/09/12 Python
基于python指定包的安装路径方法
2018/10/27 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
python集合能干吗
2020/07/19 Python
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
学院领导推荐信
2013/10/30 职场文书
中专生职业生涯规划书范文
2013/12/29 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android