如何用PHP实现图片文件名的递归重命名操作
最编程
2024-07-20 22:39:28
...
/**
* 递归重命名图片文件名
*/
function rename_dir_file($path, $filter_arr)
{
$file_arr = filter_file(scandir($path), $filter_arr);
echo "path: $path", PHP_EOL;
foreach ($file_arr as $i => $value) {
$filename = $path . DIRECTORY_SEPARATOR . $value;
if (is_dir($filename)) {
echo "do rename dir files " . $filename, PHP_EOL;
rename_dir_file($filename, $filter_arr);
} elseif (is_file($filename)) {
$file = new SplFileObject($filename);
$newname = sprintf("%s%s%s%s", $file->getPath(), DIRECTORY_SEPARATOR, "img_{$i}.", $file->getExtension());
echo "rename ", $file->getPathname(), " to ", $newname, PHP_EOL;
rename($file->getPathname(), $newname);
}
}
}
//file name filter
function filter_file($scandir, $filter_arr)
{
return array_values(array_diff($scandir, $filter_arr));
}
if (!isset($_SERVER['argv'][1]) || !is_dir($_SERVER['argv'][1])) {
exit('usage: rename.php /path');
}
$filter_arr = [
'..',
'.',
'rename.php',
];
rename_dir_file($_SERVER['argv'][1], $filter_arr);
原文地址:https://www.cnblogs.com/chn-yang/p/14536202.html