PHP Nächstfreien Dateinamen finden

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
Hallo zusammen,

ich stehe gerade ein wenig auf dem Schlauch und bräuchte mal einen Denkanstoß.

Ich versuche mit der Funktion 'file_exists' herauszufinden, ob in einem Ordner eine bestimmte Datei existiert:
file_exists("data_upload/$get_uid-1.jpg")

Wenn diese existiert, soll der Datenname für die nächste Datei bei ...-2.jpg liegen. Existiert diese,
dann bei ...-3.jpg. Maximal sollte es aber nicht mehr als 5 Dateien geben - wie kann ich das am
besten prüfen und umsetzen?

VG, David
 
Hallo,
die Prüfung in eine Schleife packen und die Dateinamen in der Schleife dynamisch zusammensetzen.

greetz
hroessler
 
  • Gefällt mir
Reaktionen: areiland
Jup, genau, die Bestandteile wären z.B. eine While-Schleife, eine Variable, die zählt wie oft durchlaufen wurde ("Counter") und dein file_exists("data_upload/$get_uid-1.jpg")

Lg
 
  • Gefällt mir
Reaktionen: areiland
PHP:
<?php
$i = 1;
$filename = null;
while( file_exists( $filename = "./pfad/zur/datei/name-".($i++).".jpg" ) )
{
  if( $i > 5 )
  {
    throw new Exception( "Zu viele Dateien." );
  }
}
 
Zuletzt bearbeitet:
@Yuuri Müsste das dann nicht ein Pre-Increment sein, wenn die Dateinamen mit 1 anfangen?

Also entweder

while( file_exists( $filename = "./pfad/zur/datei/name-".(++$i).".jpg" ) )

oder

$i = 1;

Ansonsten fange ich ja bei 0 an.

Lg

Edit: Bin mir gerade aber nicht sicher, wie sich das hier verhält, da bei Zuweisungen ja normalerweise der inkrementierte Wert benutzt wird.
 
FranzvonAssisi schrieb:
Müsste das dann nicht ein Pre-Increment sein, wenn die Dateinamen mit 1 anfangen?
Ja na klar. Wollte das i eigentlich auch noch implizit machen und hab die Initialisierung weggenommen und danach doch wieder hinzugefügt und aus Gewohntheit wieder auf 0 gesetzt. ;)
 
  • Gefällt mir
Reaktionen: FranzvonAssisi
Yuuri schrieb:
PHP:
<?php
$i = 1;
$filename = null;
while( file_exists( $filename = "./pfad/zur/datei/name-".($i++).".jpg" ) )
{
  if( $i > 5 )
  {
    throw new Exception( "Zu viele Dateien." );
  }
}
Ich würde hier eher ein for-Schleife nehmen. Damit sparst du dir die separate Prüfung auf $i> 5.

greetz
hroessler
 
Zurück
Oben