Bilder im Verzeichnis mit einem Script umbenennen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgeben
bild
code
datei
dateiname
ende
file
folgendes problem
http
leute
liegen
ordner
schleife
string
url
- 
    
    hi leute,
 
 ich habe folgendes problem:
 mein bilderuploadscript bennent alle bilder die hochgeladen werden um in einen md5 string...
 bsp:
 
 jfjaflkjnw0f92skljfrwjid90.jpg
 jklf208oijd2r0jsd08jaEF.jpg
 1109eu1ej1jed0easfkj.jpg
 
 jetzt benötige ich ein script das alle bilderdateien die in diesem ordner liegen umbennent in:
 
 1.jpg
 2.jpg
 3.jpg
 
 geht den sowas?
 
 gruß
- 
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden! lima-city: Gratis werbefreier Webspace für deine eigene Homepage 
- 
    
    Ja, sowas geht.
 http://de.php.net/opendir
 http://de.php.net/readdir
 http://de.php.net/rename
 
 kleines Bsp.: (ungetested!)
 <pre> <?php $dir = "./bilder/"; $odir = opendir($dir); $i=0; while($file = readdir($odir)) { $ext = strtolower(array_pop(explode(".",$file))); // Fileextension rausfiltern if($ext == "jpg") { // wenn jpg $newname = $i.".".$ext // den neuen Dateiname zwishcenspeichern echo("$file -> $i.$jpg\n"); // ausgeben, welche datei umbenannt wird. rename($dir.$file,$dir.$newname); // Datei umbennen } } closedir($odir); ?> </pre>
 Beitrag zuletzt geändert: 15.5.2009 8:30:19 von thomasba
- 
    
    $newname = $i.".".$ext // de..
 
 hab ich mal noch ein ; hingehängt.
 
 dann funktioniert das script genau für eine datei ^^
 sobald mehrere dateien vorhanden sind, werden alle bis auf eine gelöscht und diese wird auf 0.jpg umbennant
- 
    
    Das liegt warscheinlich daran, dass das $i nicht inkrementiert wird.
 
 Also am besten am Ende der Schleife ein Pre-Inkrement einfügen:
 ++$i;
- 
    
    <?php $dir = "./lol/"; $odir = opendir($dir); $i=0; while($file = readdir($odir)) { $ext = strtolower(array_pop(explode(".",$file))); // Fileextension rausfiltern if($ext == "jpg") { // wenn jpg $newname = ++$i.".".$ext; // den neuen Dateiname zwishcenspeichern echo("$file -> $i.$jpg\n"); // ausgeben, welche datei umbenannt wird. rename($dir.$file,$dir.$newname); // Datei umbennen } } closedir($odir); ?>
 
 soweit ist jetzt der code ^^, dennoch verschlingt er immernoch dateien ^^
- 
    
    Probiers mal so:
 
 <?php $dir = "./lol/"; $odir = opendir($dir); $i=0; while($file = readdir($odir)) { $ext = strtolower(array_pop(explode(".",$file))); // Fileextension rausfiltern if($ext == "jpg") { // wenn jpg $newname = $i.".".$ext; // den neuen Dateiname zwishcenspeichern echo("$file -> $i.$jpg\n"); // ausgeben, welche datei umbenannt wird. rename($dir.$file,$dir.$newname); // Datei umbennen } ++$i; } closedir($odir); ?>
- 
    
    jap super, jetzt funktioniert es :-)
 nur noch eines ist nicht gaaaanz vorteilhaft...
 
 nämlich das es die datei 1.jpg gar nicht erst erstellt. es beginnt bei 2.jpg
 
 aber schonmal vielen dank :-)
 
 gruß
- 
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden! lima-city: Gratis werbefreier Webspace für deine eigene Homepage 

