php更改目錄及子目錄下所有的檔案字尾副檔名的程式碼

NO IMAGE

不是很經常處理檔案,所以對遍歷目錄還不是很熟悉,找了一下資料,自己修改一下。
讓大家看看是否需要完善的
程式碼主要的目的是 批量更改 檔案字尾 由於淘寶資料包圖片型別的不同 所以要改一下適合的。
複製程式碼 程式碼如下:
<?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;
}
?>

用字串替換不太嚴謹,萬一名稱中就有gif程式就有異常。
建議使用PHP函式pathinfo(),迴圈段可修改為
複製程式碼 程式碼如下:
foreach($arr as $t)
{
  $path_parts = pathinfo($t);
  if($path_parts[“extension”] == STA)
  {
    rename($t,$path_parts[“dirname”].”/”.basename($t,STA).END);
  }
}

您可能感興趣的文章:

PHP中獲取副檔名的N種方法小結php獲取檔名稱和副檔名的方法PHP獲取副檔名的4種方法php獲得副檔名三法php副檔名判斷及獲取副檔名的N種方法php實現不通過副檔名準確判斷檔案型別的方法【finfo_file方法與二進位制流】php從給定url獲取副檔名的方法PHP獲取副檔名的方法例項總結PHP實現的獲取檔案mimes型別工具類示例php準確獲取檔案MIME型別的方法php實現獲取檔案mime型別的方法PHP獲取副檔名的常用方法小結【五種方式】