批量重命名文件夹中的文件 \- PHP

新手上路,请多包涵

我在一个文件夹中有 1000 张图像,所有图像中都有 SKU# 字样。举些例子

WV1716BNSKU#.zoom.1.jpg
WV1716BLSKU#.zoom.3.jpg

我需要做的是读取所有文件名并将其重命名为以下内容

WV1716BN.zoom.1.jpg
WV1716BL.zoom.3.jpg

所以从文件名中删除 SKU#,是否可以在 PHP 中进行批量重命名?

原文由 user580950 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 384
2 个回答

是的,只需打开目录并创建一个循环来访问所有图像并重命名它们,例如:

 <?php

if ($handle = opendir('/path/to/files')) {
    while (false !== ($fileName = readdir($handle))) {
        $newName = str_replace("SKU#","",$fileName);
        rename($fileName, $newName);
    }
    closedir($handle);
}
?>

参考:

http://php.net/manual/en/function.rename.php

http://php.net/manual/en/function.readdir.php

http://php.net/manual/en/function.str-replace.php

原文由 Aston 发布,翻译遵循 CC BY-SA 3.0 许可协议

小菜一碟:

 foreach (array_filter(glob("$dir/WV1716B*.jpg") ,"is_file") as $f)
  rename ($f, str_replace("SKU#", "", $f));

(或 $dir/*.jpg 如果数字无关紧要)

原文由 Kamil Tomšík 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏