ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
282
282
EMPFEHLEN
-
Hi!
Also mal angenommen ich habe mir ein Upload-Skript geschrieben, welches die hochgeladenen Dateien unter dem Namen abspeichert, mit dem sie hochgeladen wurden. Und, nur mal so angenommen, es wird eine Datei mit dem Namen "hallowelt.txt" hochgeladen. Wie prüfe ich, ob die Datei (ggf. mehrfach) vorhanden ist und wie bennene ich die Datei dann am geschicktesten in "hallowelt.1.txt" bzw. "hallowelt.2.txt" (usw.) um?
Ich komme mir, mit meiner Lösung, total dumm vor... wie würdet ihr das machen?
-
27.12.07 19:50 #2
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Hi,
mit file_exists kannst Du prüfen, ob es schon eine Datei unter dem Namen gibt. Wenn ja, dann durchläufst Du halt so lange eine Schleife über sagen wir mal $i, bis $name_ohne_suffix . "." . $i . $suffix nicht vorhanden ist.
Wie sah Deine Lösung denn aus?
LG
-
zur kontrolle ob eine Datei bereits existiert ist die funktion file_exists($filename);
Hier nen Beispiel wie man es lösen kann
mehr infos dazu unter:PHP-Code:if(file_exists($filename)){
$i=1;
$newfile = $i.$filename;
while(file_exists($newfile)){
$i++;
$newfile=$i.$filename;
}
$filename = $newfile;
}
http://de.php.net/manual/de/control-...ures.while.php
http://de.php.net/manual/de/function.file-exists.php
-
27.12.07 19:55 #4Whoops, hab es mit Klammern statt der Punkte im Beispiel gemacht, aber sollte leicht zu ändern seinPHP-Code:
<?php
function getNewFilename( $path ) {
// Cache leeren
clearstatcache();
// $filepath beinhaltet den Originalen Dateinamen inklusive Pfadangabe
if ( file_exists( "$path" ) ) {
// Pfadinformationen abrufen
$info = pathinfo( $path );
$directory = $info['dirname'];
$extension = $info['extension'];
$filename = $info['filename'];
// PHP < 5.0 Workaround: $filename = substr( $info['basename'], 0, - strlen( $extension ) );
for ( $i = 1; /* ... */ ; ++$i ) {
if ( !file_exists( "{$directory}{$filename}({$i}){$extension}" ) ) {
return "{$directory}{$filename}({$i}){$extension}";
}
}
}
return "$path";
}
Alternativ kann man das Pattern auch vereinheitlichen mit sprintf, aber das macht für den Moment zu viel Schreibarbeit.
-
Wow, danke für die Antworten. Nichts für ungut, aber die von R00Ki3 kam meiner schon ziemlich nahe.

Echt sehr nett, weiter so
Ähnliche Themen
-
Batch - bestimmtes Datum für alle Dateien mit gleichen Namen
Von rkrause787878 im Forum Sonstige SprachenAntworten: 5Letzter Beitrag: 02.12.10, 15:32 -
Batch - bestimmtes Datum für alle Dateien mit gleichen Namen
Von rkrause787878 im Forum Sonstige SprachenAntworten: 0Letzter Beitrag: 29.11.10, 19:40 -
Mehrere GET- oder POST-Variablen mit dem gleichen Namen übergeben
Von dwex im Forum PHPAntworten: 6Letzter Beitrag: 01.06.06, 09:29 -
Werteübergabe bei mehreren gleichen Feldern
Von devconproductions im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 23.02.06, 19:41 -
TreeMap mit mehreren gleichen Keys
Von wSam im Forum JavaAntworten: 4Letzter Beitrag: 08.02.06, 15:40





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren