[PHP] Automatisch durchnummerieren

dr-chiller

Cadet 4th Year
Registriert
Okt. 2004
Beiträge
98
Hallo!
Ich wollte mal fragen, ob man folgendes machen kann:

Ich habe Bilder in einem Ordner namens "bilder". Die heißen:
DSCN737.jpg
DSCN738.jpg
BMHG234.jpg

Wie kann ich die Dateien jetzt so umbenennen:

1.jpg
2.jpg
3.jpg

Ohne dass die Dateinamen irgendwo eingegeben werde müssen. Also alle .jpg-Dateien ab 1 hoch aufwärts benennen.

Selber programmieren kann ich das leider nicht.

Danke im vorraus.
 
Du liest mit Hilfe der Directory Funktionen den Inhat des Verzeichnisses aus.
Das ganze lässt du per while-Schleife durchrattern und kannst dann während der Schleife via Funktion rename() die Dateien umbenennen.

Um die Durchnummerierung zu gewährleisten erhöst du eine Variable pro Schleifendurchlauf immer um eins.

Also in etwa:
Code:
$i = 1;
while (DIR_EINTRAEGE) {
    rename("alt", "neu");
    $i++;
}

Den Rest musste selbst rausfinden, denn wer selbst studiert lernt am besten!
 
Zuletzt bearbeitet:
danke für deine antwort, aber ich bin ein totaler php n00b . wirklich, ich kann damit nix anfangen ! sry
 
Zuletzt bearbeitet:
Wenn es nicht umbedingt PHP sein muss, unter Windows XP kannnst du auch alle Bilder MAkieren und dann Rechtsklick->Umbenennen und dann nummeriert er sie dir durch, vielleicht reicht das ja für deinen Fall, ich weiß ja nich, wass du damit anfangen willst.
 
mm neee, das ganze soll ja aufm server liegen. und wenn eimal auf umbennen klicke sollte das programm starten. Also alles online ;)
 
Okay, ich dachte du wolltest dir damit nur deinen Heimrechner durchsotieren ...
Sry, denn halt wie von oDeM beschrieben...
 
ja nur kann ich keine php, deswegen hilft mir das ziemlich wenig !
 
Okay ich setz mich da mal ran mom ...

Edit: So hier der
PHP:
<?php
 
//Konfiguration
$Dir = "PicTest"; // Der Ordnername, in dem Die Dateien liegen sollen
$Datname = "Bild_"; // Ein Wort,dass vor der Nummer stehen soll.
// So wird mit dieser einstellung zb. eine Datei mit dem Namen Bild_12.jpg erzeugt
// Einfach leer lassen ( $Datname = ""; ), wenn nicht erwünscht
 
 
$rep=opendir("$Dir");
 
$Count = 1;
 
While ($file = readdir($rep))
{
if(is_file("$Dir/$file"))
{
	$Newfile = $Dir."/".$Datname.$Count.".jpg";
	$Oldfile = $Dir."/".$file;
	rename("$Oldfile", "$Newfile");
	$Count++;
}
}
closedir($rep);
clearstatcache();
 
echo("Fertig!<br />$Count Dateien umbenannt");
 
?>

Die Datei musst du in den selben Ordner packen, wie den Ordner mit den Pics
 
Zuletzt bearbeitet: (Fertig ... (und noch nen kleinen Bugfix))
erstmal danke. Es kommt auch eine erfolgsmeldung das 3 Files umbennant wurden. Aber eigentlich müssten 160 sein, und zweitens kann ich die 3 umbenannten files nicht finden :) !

Aber mal ne frage kommen da die umbenannten Bilder rein ?

$Dir = "PicTest"; // Der Ordnername, in dem Die Dateien liegen sollen

Oder was ?
 
Also du hasst einen Ordner, der schimpft sich meinetwegen "BlablaOrdner".
In diesem Ordner liegt die Datei Rename.php, oder wie du die Datei genannt hasst und der Ordner "PicTest", indem sich die Bilder befinden

Edit:

Ich wurde danach gefragt, noch eine Thumnail generierfunktion und evtl. einen Namen vor die Bildnummer zu schreiben.

Also hier der erweiterte
PHP:
<?php
 
// Konfiguration
 
$Dir = "PicTest"; // Der Ordnername, in dem Die Bilder liegen sollen
 
$Datname = "Bild_"; // Ein Wort,dass vor der Nummer stehen soll.
// So wird mit dieser einstellung zb. eine Datei mit dem Namen Bild_12.jpg erzeugt
// Einfach leer lassen ( $Datname = ""; ), wenn nicht erwünscht
 
$Thumb_width = 150; // Die Breite die die Thumbnails haben sollen
 
$Thumb_height = 113; // Die Höhe die die Thumbnails haben sollen
 
// Skript
 
$rep=opendir("$Dir");
 
$Count = 1;
 
While ($file = readdir($rep))
 
{
 
if(is_file("$Dir/$file"))
 
{
 
$Newfile = $Dir."/".$Datname.$Count.".jpg";
 
$NewThumb = $Dir."/".$Datname.$Count."_Thumb.jpg";
 
$Oldfile = $Dir."/".$file;
 
rename("$Oldfile", "$Newfile");
 
 
 
// Thumb generieren
 
 
 
$info = getimagesize($Newfile);
 
$image = imagecreatefromjpeg("$Newfile");
 
$Thumb = imagecreate($Thumb_width,$Thumb_height); 
 
imagecopyresized($Thumb, $image, 0,0, 0,0,$Thumb_width,$Thumb_height, $info[0],$info[1]); 
 
imagejpeg($Thumb,"$NewThumb",100);
 
 
 
// Counter erhoehen
 
 
 
$Count++;
 
}
 
}
 
closedir($rep);
 
clearstatcache();
 
echo("Fertig!<br />$Count Dateien umbenannt");
 
?>
 
Zuletzt bearbeitet: (Verständlicher gemacht)
Zurück
Oben