Ordner auslesen und Dateinamen in DB speichern

Eistee

Erfahrenes Mitglied
Hi,
ich beschäftige mich noch nicht so lange mit PHP und hätte mal ne kleine Frage:
Ich hab einen Ordner mit versch. Bildern: DSCF0001.JPG, DSCF0002.JPG etc.
jetzt möchte ich die Namen dieser Bilder mithilfe eines PHP-Scripts auslesen und pro Datei(name) eine entsprechende Zeile in einer MySQL-DB erzeugen.
Wie stell ich das am besten an?
Wär klasse, wenn ihr mit das mit einem Beispiel erklären könntet.

Danke!
 
Dazu solltest du jede vorkommende File in dem Ordner überprüfen ob es sich um eine Datei handelt oder um einen weitere Ordner (http://de3.php.net/manual/en/function.is-dir.php).
Falls dies nicht der Fall ist, dann überprüfe die Dateiendung, nicht das du irgendwelche anderen Dateien mit aufnimmst (http://de3.php.net/manual/en/function.ereg.php <-- damit auf Endung überprüfen in etwa mit .jpg oder sowas).
Wenn die richtige Endung vorhanden ist generierst du eine Abfrage die die Datei in die Tabelle der Datenbank mit aufnimmt.

Das ist mal der grobe Ansatz. Die Feinheiten zu erklären würde jetzt zu lange dauern.
 
Ich denke, diese beiden faktoren kann ich aussen vor lassen, da der Ordner keine Unterordner hat und sich auch ausschlisslich Bilddateien in ihm befinden ;)

Aber wie müsste eine solche Funktion aussehen, die den Dateinamen in dei DB übernimmt? Ich hab leider absolut keinen Plan, wie ich das realisieren könnte
 
PHP:
<?
	$dir = "/directory_to_images";

	function dirlist($directory) {
		chdir($directory);
		$handle = opendir($directory);
		
		while(false !== ($file = readdir($handle))) {
			if($file != ".." && $file != ".") {
				if(!is_dir($file)) {
					$insert = "INSERT INTO dateien(name)
						   VALUES('".$file."')";
					if($ins = mysql_query($insert)) {
						print 'Datei: '.$file.' eingef&uuml;gt';
					} else {
						print 'Date: '.$file.' nicht eingef&uuml;gt<br />';
						print mysql_error();
					}
				}
			}
		}
	}

	dirlist($dir);
?>
So könnte es in etwa aussehen. Den Tabellennamen und die Felder musst du halt anpassen.
Ansonsten sollten dir folgende Seiten was bringen um es zu verfeinern:
http://de3.php.net/manual/en/ref.dir.php
http://de3.php.net/manual/en/ref.filesystem.php
 
Nein, kein Fehler! Das gehört so.
In der Funktion selbst benutze ich $directory als Variable für den Verzeichnisnamen.
$dir habe ich nur genommen um einen Beispielwert zu setzen den ich an die Funktion übergeben kann
 
Zurück