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