首頁  >  文章  >  後端開發  >  php更改目錄及子目錄下所有的檔案後綴副檔名的程式碼

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

WBOY
WBOY原創
2016-07-29 08:43:50990瀏覽

不是很常處理文件,所以對遍歷目錄還不是很熟悉,找了一下資料,自己修改一下。
讓大家看看是否需要完善的
代碼主要的目的是 批量更改 文件後綴 由於淘寶數據包圖片類型的不同 所以要改一下適合的。

複製程式碼 程式碼如下:


//本檔案和要變更的目錄下的檔案放在同一資料夾下
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;
}
?>
return $files;

}
?>
return $files;
}

?> return $files; } ?>

用字串替換不太嚴謹,萬一名稱中就有gif程式就有異常。
建議使用PHP函數pathinfo(),循環段可修改為



複製程式碼

程式碼如下:

foreach( $arr as $t)

{

  $path_parts = pathinfo($t);

  if($path_parts["extension"] == STA)

   $path_parts["dirname"]."/".basename($t,STA).END);   } } 以上就介紹了 php更改目錄及子目錄下所有的檔案後綴副檔名的程式碼,包括了方面的內容,希望對PHP教學有興趣的朋友有幫助。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn