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

use*_*950 15 php

我在一个文件夹中有1000个图像,在所有图像中都有SKU #word.举些例子

WV1716BNSKU#.zoom.1.jpg
WV1716BLSKU#.zoom.3.jpg
Run Code Online (Sandbox Code Playgroud)

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

WV1716BN.zoom.1.jpg
WV1716BL.zoom.3.jpg
Run Code Online (Sandbox Code Playgroud)

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

Ast*_*ton 28

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

<?php

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

参考文献:

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


Kam*_*šík 10

小菜一碟:

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

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