Prüfen, ob Datei existiert / Zahl an Namen anhängen

Avatar of Chris Coyier
Chris Coyier am

Wenn der Dateiname existiert, wird ein neuer Dateiname mit angehängter Nummer zurückgegeben, damit Sie ihn nicht überschreiben.

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 = 0;
    while (file_exists($newpath)) {
           $newname = $name .'_'. $counter . $ext;
           $newpath = $path.'/'.$newname;
           $counter++;
     }

    return $newname;
}

Beispiel-Rückgabe

myfile.jpg
myfile_0.jpg
myfile_1.jpg