以下是一個可以實現批量重命名指定文件夾下文件名的 PHP 函數:
🔒 隱藏內容:登錄後可查看
function batchRenameFiles($dir, $search, $replace) {
$files = scandir($dir); // 獲取目錄下所有文件
foreach ($files as $file) {
$filePath = $dir . DIRECTORY_SEPARATOR . $file;
// 排除 "." 和 ".." 以及目錄
if ($file == '.' || $file == '..' || is_dir($filePath)) {
continue;
}
// 檢查文件名是否包含搜索字符串
if (strpos($file, $search) !== false) {
$newName = str_replace($search, $replace, $file); // 構造新文件名
// 檢查新文件名是否已存在
if (file_exists($dir . DIRECTORY_SEPARATOR . $newName)) {
echo "文件 $newName 已存在,跳過文件 $file。\n";
} else {
// 進行文件重命名
if (rename($filePath, $dir . DIRECTORY_SEPARATOR . $newName)) {
echo "重命名文件 $file 爲 $newName 成功。\n";
} else {
echo "重命名文件 $file 爲 $newName 失敗。\n";
}
}
}
}
}
該函數接受三個參數:
$dir: 要批量重命名文件的目錄路徑。$search: 要查找和替換的字符串。$replace: 要替換成的字符串。
函數通過使用 scandir 函數來獲取指定目錄下的所有文件,然後對每個文件進行判斷,如果文件名包含搜索字符串,則構造新文件名並進行重命名操作。在重命名操作中,函數還會檢查新文件名是否已經存在,以避免重名問題。
你可以通過以下方式調用該函數:
batchRenameFiles('/path/to/directory', 'old_string', 'new_string');
其中,/path/to/directory 是要批量重命名的目錄路徑,old_string 是要查找和替換的字符串,new_string 是要替換成的字符串。
成功後的效果圖:

輸出自己可以美化一下,也就加個br