免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2033 | 回复: 0
打印 上一主题 下一主题

PHP遍历文件目录与清除目录中的文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-20 19:56 |只看该作者 |倒序浏览
PHP遍历文件目录与清除目录中的文件



今天无聊中练习了一下PHP遍历文件目录的程序,编写了以下两个程序,不过质量不是很好,轻拍~~~

1、清除PHP缓存文件





Php代码

  1. <?php

  2. function read_dir($dir,$file)
  3. {
  4.         $a =strpos($file,".php");
  5.        
  6.         if($a>0)
  7.         {
  8.                 unlink($dir . $file);
  9.                 echo "delete $dir$file <br>";
  10.                 return true;
  11.         }
  12.        
  13.         if(strpos($file,".") === 0 || strpos($file,".") !== false ) return true;
  14.        
  15.         if(strpos($file,".") === false || strpos($dir,"/") === false)
  16.         {
  17.                 $dir = $dir . $file . "/";
  18.                 if(!is_dir($dir)) return false;
  19.                 $dh = opendir($dir);
  20.                 while(($file = readdir($dh)) != false)
  21.                 {
  22.                         read_dir($dir,$file);   //递归调用
  23.                 }
  24.         }
  25. }

  26. function clear_caches()
  27. {
  28.         $dir = "./temp/";  //要清除的PHP缓存文件目录

  29.         if(!is_dir($dir)) die("It is not a dir");
  30.         $dh = opendir($dir);

  31.         while(($file = readdir($dh) )!=false)
  32.         {
  33.                 //var_dump($file);
  34.                 read_dir($dir,$file);

  35.         }
  36. }


  37. ?>

复制代码
2、遍历目录中所有文件



Php代码

  1. <html>

  2. <head>
  3.         <meta http-enquiv="Content-Type" content="text/html;charset=gb2312">
  4.         <title>查看目录</title>
  5. </head>

  6. <body>
  7.         <table width="600" align="center">
  8.                 <tr>
  9.                         <th width="50%">文件名</th>
  10.                         <th width="25%">修改时间</th>
  11.                         <th width="25%">文件大小(k)</th>
  12.                 </tr>


  13.         <?php
  14.          
  15.         //$dir = "./admin/";
  16.         $dir = "c:/";
  17.         $up_dir = "上级目录";
  18.         $up_url = $dir;
  19.        
  20.         if(isset($_REQUEST['act']) && $_REQUEST['act']=='list_dir')
  21.         {
  22.                 if(empty($_REQUEST['dir']))
  23.                 {
  24.                         $up_dir="目录为空!";
  25.                 }
  26.                 $dir = isset($_REQUEST['dir']) ? $_REQUEST['dir'] : $dir;

  27.         }
  28.     if(!is_dir($dir))
  29.         {
  30.                 $up_dir="无效目录!";
  31.         }

  32.         ?>

  33.                 <tr>
  34.                         <td colspan="3">
  35.                         <?php
  36.                        
  37.                         if(strpos($up_dir,"上级目录")!==false)
  38.                         {
  39.                                 //if($up_url=="") echo $up_dir;
  40.                                 if($dir != "./admin/")
  41.                                 {
  42.                                  $up_url = substr($dir,0,-1);
  43.                                  $k = strrpos($up_url,"/");
  44.                                  $up_url = substr($up_url,0,$k-strlen($up_url));
  45.                                  $up_url = $up_url ."/";
  46.                                 }
  47.                                  echo "<a href=\"test.php?act=list_dir&dir=$up_url\">$up_dir</a>";
  48.                         }
  49.                         else
  50.                         {
  51.                                 echo $up_dir;
  52.                                 die();
  53.                         }
  54.                         ?>
  55.                         </td>
  56.                 </tr>
  57.         <?php
  58.             $up_dir = $dir;
  59.                 $dh = opendir($dir);  
  60.                 while(($file=readdir($dh)) != false)
  61.                 {       
  62.                         if($file != "." && $file != ".." && $file != ".svn" )
  63.                         {
  64.                                 if(strpos($file,".") !==false)
  65.                                 {
  66.                                     $time = date("Y-m-d H:i:s", filectime($dir . $file));
  67.                                         $size = filesize($dir . $file)/1000;
  68.                                         echo "<tr><td>$file</td><td>$time</td><td>$size</td></tr>";
  69.                                 }
  70.                                 else
  71.                                 {   
  72.                                         $time = date("Y-m-d H:i:s.", filectime($dir . $file));
  73.                                         $size = filesize($dir . $file)/1000;
  74.                                         $dir = $dir . $file ."/";
  75.                                        
  76.                                         echo "<tr><td><a href =\"test.php?act=list_dir&dir=$dir\">$file</a></td><td>$time</td><td>$size</td></tr>";
  77.                                         $dir = $up_dir;
  78.                                        
  79.                                 }
  80.                         }
  81.                 }
  82.                
  83.         ?>
  84.                

  85.         </table>

  86. <?php die();  ?>
  87. </body>


  88. </html>  
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP