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

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

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

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

  

复制代码 代码如下:

  <?php

  //本文件和要改变的目录下的文件 放在同一文件夹下

  define("STA",".gif");//原来的文件格式

  define("END",".jpg");//要改变的格式

  $dir="./";

  $arr=allfile($dir);

  foreach($arr as $t)

  {

  $t=str_replace(".//","",$t);

  if(substr_count($t,STA)>0)

  {

  $f2=str_replace(STA,"",$t);

  rename($t,$f2.END);

  }

  }

  //获取目录下所有文件的函数

  function allfile($dir)

  {

  $files=array();

  if(is_file($dir))

  {

  return $dir;

  }

  $handle = opendir($dir);

  if($handle) {

  while(false !== ($file = readdir($handle))) {

  if ($file != '.' && $file != '..') {

  $filename = $dir . "/" . $file;

  if(is_file($filename)) {

  $files[] = $filename;

  }else {

  $files = array_merge($files, allfile($filename));

  }

  }

  } // end while

  closedir($handle);

  }

  return $files;

  }

  ?>