PHP實現讀取資料夾及批量重新命名檔案操作示例

2022-10-06 00:54:12 字數 1997 閱讀 8352

以讀取從網上**的評書解壓後的資料夾為例,並批量重新命名

資料夾內容如下,現在使用php讀取這個資料夾裡面的檔案,並批量重新命名為"隋唐演義+序號.***"的格式:

<?php $dir1 = './dir1/';//讀取資料夾名稱 (重新命名為dir1避免中文報錯,移動到與要執行的php檔案同級目錄)

$filexcrsrjgikarr = scandir($dir1);//讀取資料夾

print_r($filearr);

讀取資料夾內容如下:

進一步操作,對獲得的檔案陣列做一些處理:

<?php $dir1 = './dir1/';//讀取資料夾名稱(避免使用中文)

$filearr = scandir($dir1);//讀取資料夾

unset($filearr[0]);//去除多餘的元素

unset($filearr[1]);

$filearr = array_values($filearr);//使陣列從0開始,以1遞增

print_r($filearr);

此時檔案陣列的格式就正常了:

現在對檔案陣列迴圈,重新命名檔案,並移動到資料夾dir2(移動檔案是rename()函式造成的):

<?php $dir1 = './dir1/';//讀取資料夾名稱(避免使用中文)

$dir2 = './dir2/';//移動到資料夾名稱(避免使用中文)

$filearr = scandir($dir1);//讀取資料夾

unset($filearr[0]);//去www.cppcns.com除多餘的元素

unset($filearr[1]);

$filearr = array_values($filearr);/www.cppcns.com/使陣列從0開始,以1遞增

$filecount = count($filearr);//檔案數量

$onenum = 1;//起始編號

$maxnum = $onenum + $filecount;//最大迴圈次數

$title = 'styy';//檔案標題

$houzhui = '.***';//檔案字尾

for ($i = $onenum; $i <= $maxnum; $i++)

rename($dir1.$filearr[$j],$dir2.$title.$i.$houzhui);

$i++;}}

操作結果如下,批量重新命名成功,dir2資料夾內容:

如果使用中文名對檔案重新命名,會出現亂碼的現象,原因是字符集編碼設定的問題,解決方法如下:(但遇到某些中文字元仍舊是亂碼)

<?php $dir1 = './dir1/';//讀取資料夾名稱

$dir2 = './dir2/';//移動到資料夾名稱

$filearr = scandir($dir1);//讀取資料夾

unset($filearr[0]);//去除多餘的元素

unset($filearr[1]);

$filearr = array_values($filearr);//使陣列從0開始,以1遞增

$filecount = count($filearr);//檔案數量

$onenum = 1;//起始編號

$maxnum = $onenum + $filecount;//最大迴圈次數

$title = '隋唐演義';//檔案標題

$houzhui = '.***';//檔案字尾

for ($i = $onenum; $i <= $maxnum; www.cppcns.com$i++)

$filename = $title.$i.$hoxcrsrjgikuzhui;

rename($dir1.$filearr[$j],$dir2.iconv("utf-8","gb2312",$filename));//設定字符集

$i++;}}

執行後dir2資料夾內容如下:

到此完成php對資料夾中檔案的讀取、批量重新命名操作。另外可以構思乙個簡單的頁面自定義操作(如下圖,**省略)

php讀取資料夾內檔案及資料夾

php讀取資料夾內檔案及資料夾 引數 資料夾路徑 dir,格式要求 資料夾名稱後必須有 返回值 含有檔名稱和路徑的一維陣列 function read dir else 進行路徑拼接 allfile array merge file arr,dir arr 拼合陣列 return allfile f...

php讀取資料夾許可權

說明 摘錄自 user manager for pureftpd 的許可權顯示函式 整理 功能 讀取資料夾許可權 function displayfilepermissions mode else if mode 0x2000 else if mode 0x4000 else if mode 0x6...

用nodeJs實現資料夾內所有檔案的重新命名

nodejs中我比較感興趣的有乙個地方就是fs檔案系統。今天就用nodejs實現了乙個重新命名資料夾內所有檔案的指令碼。命名可以自定義。use strict var fs require fs var i 0 var setting area var directory files 酒水 var f...