itRef.cn技术参考网站

当前位置: 主页 > PHP >

PHP扫描目录列表,批量修改替换文件

时间:2012-02-17 16:49来源:未知 作者:wiwi 点击:
1. 问题背景 在应用HTML5的menifest浏览器端缓存特性时,我们需要把要缓存的文件,在menifest文件中一一列出来。如果文件很少,手工列出来没关系;同一目录下的情况也不要紧,使用dos dir /b menu.txt命令也可以;但要列出某个目录下所有的文件列表,包括所
1. 问题背景

在应用HTML5的manifest浏览器端缓存特性时,我们需要把要缓存的文件,在manifest文件中一一列出来。如果文件很少,手工列出来没关系;同一目录下的情况也不要紧,使用dos “dir /b >> menu.txt”命令也可以;但要列出某个目录下所有的文件列表,包括所有子目录时,难度就大了。为此推出PHP扫描生成文件目录的方法。

2. 解决方法

建立一php文件t.php,内容如下:
  1. <?php  
  2.  
  3. function tree($directory) {  
  4.     $mydir = dir($directory);  
  5.     //echo "<ul>\n";  
  6.     while ($file = $mydir ->read()) {  
  7.         if ((is_dir("$directory/$file")) AND($file != ".") AND($file != "..")) {  
  8.             //echo "<li><font color=\"#ff00cc\"><b>$file</b></font></li>\n";  
  9.             echo "<br />";  
  10.             tree("$directory/$file");  
  11.         } elseif ($file != "." && $file != "..") {  
  12.           //echo "<li>$file</li>\n";  
  13.  
  14.             $editFlag = 0;  
  15.             preg_match( '/\.([^\.]+)$/'$file$matches );  
  16.             switchstrtolower($matches[1]) )  
  17.             {  
  18.                 case 'php':               
  19.                     break;  
  20.                 default:  
  21.                     $editFlag = 1;  
  22.             }  
  23.             //echo $directory . $file; exit;  
  24.  
  25.           if($editFlag && $file!='t.php'){  
  26.               $fileDir = $directory ."/"$file;  
  27.                 
  28.               echo $fileDir . "<br />";  
  29.           }  
  30.         }  
  31.     }  
  32.     //echo "</ul>\n";  
  33.     $mydir ->close();  
  34. }  
  35.  
  36. //开始运行  
  37. set_time_limit(1800) ;  
  38. tree(dirname(__FILE__)."/");  
  39. ?> 

把t.php放在需要列出文件列表的目录下,通过浏览器访问服务器上的t.php文件即可。如:要列出temp目录下的文件列表,把t.php放到temp目录下,访问 http://xxx.xxx.xxx/temp/t.php 即可。
(责任编辑:wiwi) 转载请注明 来源于itRef.cn技术参考网站:
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容