php更改目录及子目录下所有的文件后缀

今天遇到要改变当前目录下指定类型的文件类型,本来想要用批处理来做这个,结果没找到合适。就自己去查了下资料,用Php来处理一下。

不是很经常处理文件,所以对遍历目录还不是很熟悉,找了一下资料,自己修改一下。

让大家看看是否需要完善的

代码主要的目的是 批量更改 文件后缀 由于淘宝数据包图片类型的不同 所以要改一下适合的。

代码
1 <?php
2  //本文件和要改变的目录下的文件 放在同一文件夹下
3 define("STA",".gif");//原来的文件格式
4 define("END",".jpg");//要改变的格式
5 $dir="./";
6 $arr=allfile($dir);
7
8 foreach($arr as $t)
9 {
10 $t=str_replace(".//","",$t);
11
12 if(substr_count($t,STA)>0)
13 {
14 $f2=str_replace(STA,"",$t);
15 rename($t,$f2.END);
16 }
17 }
18 //获取目录下所有文件的函数
19 function allfile($dir)
20 {
21 $files=array();
22 if(is_file($dir))
23 {
24 return $dir;
25 }
26 $handle = opendir($dir);
27 if($handle) {
28 while(false !== ($file = readdir($handle))) {
29 if ($file != '.' && $file != '..') {
30 $filename = $dir . "/" . $file;
31 if(is_file($filename)) {
32 $files[] = $filename;
33 }else {
34
35 $files = array_merge($files, allfile($filename));
36 }
37 }
38 } // end while
39 closedir($handle);
40 }
41 return $files;
42
43 }
44
45
46
47 ?>

转载请说明:来源 http://www.jianlila.com 技术组 

posted @ 2010-09-22 20:18  lrjxgl  阅读(471)  评论(2编辑  收藏  举报