php 批量重命名目录中的图像

php bulk rename images in directory

我有一个包含大约 2000 张图像的目录。图片文件名的结构如下:

image1_r1.jpg
newimage2_r2.jpg
anotherimage3_r2.jpg etc etc

我创建了以下循环并替换 'r1'。完成后,我将手动将其更改为 'r2' 并重复其余部分。

if ($handle = opendir('/my-directory/')) {
    while (false !== ($fileName = readdir($handle))) {
        $newName = str_replace("r1","",$fileName);
        rename($fileName, $newName);
    }
    closedir($handle);
}

然而,当我 运行 我的脚本时,我得到以下信息:

Warning: rename(sgr_dolly_duck_r1_item.jpg,sgr_dolly_duck_item.jpg): No such file or directory in /home/washington/public_html/rename.php on line 8

知道这是为什么吗?

您需要将 /my-directory/ 添加到 $fileName$newName 的开头。或者先调用 chdir('/my-directory/') 更改当前工作目录。