如果服务器上已存在图像名称,我将使用以下代码格式更改图像名称。如果它们已经以相同的名称存在,我想要增量图像名称。
例如:abc.png,abc_1.png,abc_2.png
function file_newname($path, $filename){
if ($pos = strrpos($filename, '.')) {
$name = substr($filename, 0, $pos);
$ext = substr($filename, $pos);
} else {
$name = $filename;
}
$newpath = $path.'/'.$filename;
$newname = $filename;
$counter = 1;
while (file_exists($newpath)) {
$newname = $name .'_'. $counter . $ext;
$newpath = $path.'/'.$newname;
$counter++;
}
return $newname;
}
如果图像名称为abc.png ,则上述代码有效。如果服务器上已经有一个名为abc_1.png的图像,我运行它生成图像格式为abc_1_1.png
. 预期输出:如果已经存在abc_1.png并且我运行代码$newname
应该返回abc_2.png。我怎样才能实现它?