recursive function yazıp dosya adı varsa artı 1 ekle yapabilirsin mesela ben şuna benzer bir şeyi veri tabanında sorguluyorum ama dosyada sorgulama olarak kodu buraya yazdım denemedim ama muhtemelen çalışacak

function benzer_dosya($gelen_dosya_yeni,$gelen_dosya_original)
{  
   global $dosya_sayac;

   if(file_exists($gelen_dosya_yeni))
   {
      $dosya_sayac++;  
      
      $gelen_dosya_yeni_ad = $gelen_dosya_original."-".$dosya_sayac;
      benzer_dosya($gelen_dosya_yeni_ad,$gelen_dosya_original);
   }
}

$dosya_sayac = 0;
benzer_dosya($dosya_adi,$dosya_adi);

echo $dosya_adi."-".$dosya_sayac;
Şimdi denedim uzantıyı kontrol etmek ve çıkarmak gerek ona göre koda ayar vermek gerekmiş yinede faydalı olacağını umuyorum.