• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Versionsnummer an String anhängen

blabla333

Mitglied
Ich möchte prüfen, ob eine Datei bereits vorhanden ist. Wenn ja, dann wird an den Dateinamen ein "_2" angehängt. Ist bereits ein Anhang vorhanden, wird die Zahl erhöht, also "_3". Also aus "dateiname" wird "dateiname_2" und aus "dateiname_4" würde "dateiname_5" werden.

Ich würde es so lösen, dass ich den Dateiname per split() aufteile, anschließend überprüfe, wie viele Elemente vorliegen (der Dateiname selbst kann ja Unterstriche beinhalten) und abschließend die Zahl anhängen/erhöhen.
Aber das scheint mir doch zu aufwändig, für so etwas simples. Wie kann ich das kürzer und einfacher machen?
 
Werbung:
Auf die Schnelle zusammengeschraubt und ungetestet:
PHP:
<?php

   function nextFilename($filename)
   {
       $result = $filename;

       $parts = explode (".", $filename);

       $files = glob($parts[0] . "*" . $parts[1]);

       if (count($files))
       {
          $i = 1;

          $more = true;

          while($more)
          {
              if (! in_array($parts[0] . "_" . $i . "."  . $parts[1], $files))
              {
                 $result = $parts[0] . "_" . $i . "." . $parts[1];
                 $more = false;
              }

              $i++;
          }
       }

       return $result;
   }

   $name = "hallo.jpg";

   $next = nextFilename($name);

   echo $next;
?>
 
Zurück
Oben