Я использую следующий формат кода для изменения имени изображения, если оно уже существует на сервере. Мне нужны добавочные имена изображений, если они уже существуют с тем же именем.
Пример: 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 . Как я могу этого добиться?