php更改目錄及子目錄下所有的文件后綴擴展名的代碼
更新時間:2010年10月12日 09:59:19 作者:
今天遇到要改變當前目錄下指定類型的文件類型,本來想要用批處理來做這個,結(jié)果沒找到合適。就自己去查了下資料,用Php來處理一下。
不是很經(jīng)常處理文件,所以對遍歷目錄還不是很熟悉,找了一下資料,自己修改一下。
讓大家看看是否需要完善的
代碼主要的目的是 批量更改 文件后綴 由于淘寶數(shù)據(jù)包圖片類型的不同 所以要改一下適合的。
<?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);
}
}
//獲取目錄下所有文件的函數(shù)
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;
}
?>
用字符串替換不太嚴謹,萬一名稱中就有g(shù)if程序就有異常。
建議使用PHP函數(shù)pathinfo(),循環(huán)段可修改為
foreach($arr as $t)
{
$path_parts = pathinfo($t);
if($path_parts["extension"] == STA)
{
rename($t,$path_parts["dirname"]."/".basename($t,STA).END);
}
}
讓大家看看是否需要完善的
代碼主要的目的是 批量更改 文件后綴 由于淘寶數(shù)據(jù)包圖片類型的不同 所以要改一下適合的。
復制代碼 代碼如下:
<?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);
}
}
//獲取目錄下所有文件的函數(shù)
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;
}
?>
用字符串替換不太嚴謹,萬一名稱中就有g(shù)if程序就有異常。
建議使用PHP函數(shù)pathinfo(),循環(huán)段可修改為
復制代碼 代碼如下:
foreach($arr as $t)
{
$path_parts = pathinfo($t);
if($path_parts["extension"] == STA)
{
rename($t,$path_parts["dirname"]."/".basename($t,STA).END);
}
}
相關(guān)文章
php自動識別文件編碼并轉(zhuǎn)換為UTF-8的方法
PHP轉(zhuǎn)換文件編碼是一個比較簡單的事情,但是難的是傳遞中文參數(shù)的時候,有時候不知道是什么編碼,結(jié)果造成了亂碼的現(xiàn)象。這篇文章主要介紹了php自動識別編碼并轉(zhuǎn)換為UTF-8的方法,需要的朋友可以參考下2014-06-06
PHP iconv 解決utf-8和gb2312編碼轉(zhuǎn)換問題
就一個很簡單的函數(shù)iconv();但是就是這個函數(shù)在網(wǎng)上找了很多例子,都無法成功轉(zhuǎn)換,這是為什么呢?2010-04-04
windows服務(wù)器iis+php獲得錯誤信息的配置方法
最近技術(shù)在服務(wù)器上執(zhí)行代碼時總是顯示空白信息,因為本地測試正常的,但服務(wù)器上就有問題了,默認都是不顯示php代碼的錯誤信息的,可以通過如下設(shè)置就可以了2025-02-02
php中將一段數(shù)據(jù)存到一個txt文件中并顯示其內(nèi)容
這篇文章主要介紹了php中將一段數(shù)據(jù)存到一個txt文件中,并獲取其內(nèi)容顯示的實現(xiàn)代碼,需要的朋友可以參考下2014-08-08
php生成隨機數(shù)/生成隨機字符串的方法小結(jié)【5種方法】
這篇文章主要介紹了php生成隨機數(shù)/生成隨機字符串的方法,結(jié)合實例形式分析了php生成隨機數(shù)/生成隨機字符串的5種實現(xiàn)方法與相關(guān)操作注意事項,需要的朋友可以參考下2020-05-05

