php更改目錄及子目錄下所有的文件后綴擴(kuò)展名的代碼
更新時(shí)間:2010年10月12日 09:59:19 作者:
今天遇到要改變當(dāng)前目錄下指定類型的文件類型,本來想要用批處理來做這個(gè),結(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;
}
?>
用字符串替換不太嚴(yán)謹(jǐn),萬一名稱中就有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ù)包圖片類型的不同 所以要改一下適合的。
復(fù)制代碼 代碼如下:
<?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;
}
?>
用字符串替換不太嚴(yán)謹(jǐn),萬一名稱中就有g(shù)if程序就有異常。
建議使用PHP函數(shù)pathinfo(),循環(huán)段可修改為
復(fù)制代碼 代碼如下:
foreach($arr as $t)
{
$path_parts = pathinfo($t);
if($path_parts["extension"] == STA)
{
rename($t,$path_parts["dirname"]."/".basename($t,STA).END);
}
}
您可能感興趣的文章:
- PHP中獲取文件擴(kuò)展名的N種方法小結(jié)
- php獲取文件名稱和擴(kuò)展名的方法
- PHP獲取文件擴(kuò)展名的4種方法
- php獲得文件擴(kuò)展名三法
- php文件擴(kuò)展名判斷及獲取文件擴(kuò)展名的N種方法
- php實(shí)現(xiàn)不通過擴(kuò)展名準(zhǔn)確判斷文件類型的方法【finfo_file方法與二進(jìn)制流】
- php從給定url獲取文件擴(kuò)展名的方法
- PHP獲取文件擴(kuò)展名的方法實(shí)例總結(jié)
- PHP實(shí)現(xiàn)的獲取文件mimes類型工具類示例
- php準(zhǔn)確獲取文件MIME類型的方法
- php實(shí)現(xiàn)獲取文件mime類型的方法
- PHP獲取文件擴(kuò)展名的常用方法小結(jié)【五種方式】
相關(guān)文章
php使用array_rand()函數(shù)從數(shù)組中隨機(jī)選擇一個(gè)或多個(gè)元素
這篇文章主要介紹了php使用array_rand()函數(shù)從數(shù)組中隨機(jī)選擇一個(gè)或多個(gè)元素,需要的朋友可以參考下2014-04-0410個(gè)可以簡化php開發(fā)過程的MySQL工具
使用各種精心設(shè)計(jì)的工具來管理MySQL數(shù)據(jù)庫要比單純使用傳統(tǒng)的方法輕松得的多。開發(fā)人員應(yīng)該不斷尋找那些能夠縮短開發(fā)時(shí)間的工具。這也是我們本文整理這10個(gè)能夠簡化開發(fā)過程的MySQL工具的原因。2010-04-04php中通過數(shù)組進(jìn)行高效隨機(jī)抽取指定條記錄的算法
php使用數(shù)組array_rand()函數(shù)進(jìn)行高效隨機(jī)抽取指定條數(shù)的記錄,可以隨機(jī)抽取數(shù)據(jù)庫中的記錄,適合進(jìn)行隨機(jī)展示和抽獎(jiǎng)程序2013-09-09PHP遍歷某個(gè)目錄下的所有文件和子文件夾的實(shí)現(xiàn)代碼
本篇文章是對PHP遍歷某個(gè)目錄下的所有文件和子文件夾的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP操作Postgresql封裝類與應(yīng)用完整實(shí)例
這篇文章主要介紹了PHP操作Postgresql封裝類,結(jié)合實(shí)例形式分析了php針對Postgresql數(shù)據(jù)庫常見的連接、查詢、統(tǒng)計(jì)等操作封裝技巧與使用方法,需要的朋友可以參考下2018-04-04PHP實(shí)現(xiàn)類似于C語言的文件讀取及解析功能
這篇文章主要介紹了PHP實(shí)現(xiàn)類似于C語言的文件讀取及解析功能,結(jié)合實(shí)例形式分析了php讀取文件的相關(guān)函數(shù)與使用注意事項(xiàng),需要的朋友可以參考下2017-09-09PHP超級全局變量、魔術(shù)變量和魔術(shù)函數(shù)匯總整理
這篇文章主要介紹了PHP超級全局變量、魔術(shù)變量和魔術(shù)函數(shù)匯總整理,有需要的同學(xué)可以看下2021-02-02