Dieses kleine Skript hilft dabei, viele Dateien schnell und einfach umzubenennen: Das ist zum Beispiel praktisch, um allen Bildern in einem Ordner eine fortlaufende Nummer zu geben oder das Datum mit in den Namen zu übernehmen. Das Skript nutzt dabei die “rename” Funktion von PHP: Die Programmiersprache ist auf den meisten Apple und Linux Rechnern bereits installiert.
Der Vorteil von PHP: Das Skript lässt sich Terminal aufrufen und läuft somit auf allen Rechnern, die PHP unterstützen – unabhängig vom installierten Betriebssystem. Das kleine Skript nimmt jetzt alle Dateien eines Ordners: Bearbeitet werden aber nur die mit einer passenden Dateiendung. In unserem Beispiel ist das .jpg: Damit werden alle JPEG Fotos in dem Ordner umbenannt.
Alle JPG Bilder in dem Ordner durchnummerieren
Dieses kleine Skript nimmt alle JPG Dateien in dem aktuellen Ordner ($dir = ‘./’) und löscht den aktuellen Dateinamen. Stattdessen werden die Bilder der Reihe nach umbenannt und haben nachher den Namen bild-1.jpg, bild-2.jpg und bild-3.jpg.
Die erste Seite definiert das Verzeichnis: ./ ist das aktuelle Verzeichnis, indem sich auch das PHP Skript befindet. Die While-Schleife geht das Verzeichnis dann der Reihe nach durch, ignoriert aber Dateien mit einem Punkt zu Beginn des Dateinamens: Damit werden unter Linux und Mac OS unsichtbare Dateien ausgeschlossen.
Enthält die gefundene Datei dann die Dateiendung .jpg, wird der Dateiname in “bild-$zaehler.jpg” geändert: Die Variable $zaehler wird dabei in jedem Durchlauf um den Wert 1 erhöht.
Am Ende nennt der PHP Befehl rename() die Datei um: Dabei wird der eigentliche, alte Dateiname und der neue Name “bild-$zaehler.jpg” übergeben.
<?php
$dir = './';
$handle=opendir($dir);
$zaehler = 0;
echo "\n";
echo "Verzeichnis: $dir \n";
echo "Anzahl: $anzahl Dateien \n\n";
while ($file = readdir($handle)) {
echo 'Bearbeite Datei: '.substr($file,0,1)."\n";
if(substr($file,0,1) != ".") {
$dateiname = $file;
if(strstr($dateiname, '.jpg')) {
$dateiname = 'bild-'.$zaehler.'.jpg';
$zaehler++;
rename($file,$dateiname);
echo 'Umbenannt: '.$file."\n".'-----> in: '.$dateiname."\n";
}
}
}
echo "\n";
?>