サーバーに既に存在する場合、次のコード形式を使用してイメージ名を変更しています。同じ名前のイメージが既に存在する場合は、増分イメージ名が必要です。
例: 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が存在し、コードを実行すると、abc_2.png$newname
が返されます。どうすれば達成できますか?