KarloK.: Script macht nicht das, was ich eigentlich will

Beitrag lesen

Eigentlich will ich nämlich, dass die dateien

bild3.jpg
bild4.jpg
bild5.jpg

ins Backup-Verzeichnis kopiert werden.

Sollten diese Dateinamen dort aber schon vorhanden sein, soll ab dem "höchsten Dateinamen" weiter hochgezählt werden.

Beispiel: Im Backup-Verzeichnis gibt es schon

bild3.jpg
bild5.jpg
testbild2.jpg
test4.jpg
photo22.jpg

Dann soll
./bild3.jpg zu ./backup/bild6.jpg werden
./bild4.jpg zu ./backup/bild7.jpg werden
./bild5.jpg zu ./backup/bild8.jpg werden

Mein bisheriger Code:

  
preg_match("/\d*$/", $datei_ohne_endung, $treffer;  
$i=$treffer[0];  
$datei_ohne_endung = preg_replace("/\d*$/", "", $datei_ohne_endung);  
while (file_exists("./backup/$datei_ohne_endung$i".".$endung")) {  
$i++;							  
}  
// in das Backup verschieben  
$tofile="./backup/$datei_ohne_endung$i".".$endung";  
rename($verzeichnis.$datei, $verzeichnis.$tofile);  

Wie kann ich das verbessern? Bisher würde aus bild3.jpg nämlich falscherweise bild4.jpg im Backup.
Ansonsten funktioniert es schon. Es scheitert bisher daran, dass ich nicht die höchste Bild_index_zahl für den entsprechenden Dateinamen herausbekomme.

Grüße, KK