In dem nachfolgenden Code Beispiel erklären wir ihnen, wie sie mit PHP einen Ordner auslesen und per Zufall ein Bild ausgeben. Mit diesen Script können Sie etwa Fun Bilder auf Ihrer Startseite ausgeben. Dazu müssen Sie das Script per include() einbinden.
<?php
/*
* Created on 19.08.2009 by Nico Schubert
*/
/**
* Hier geben sie bitte
* den Ordner von ihren Bildern an.
*/
$ordner_von_den_bilder = '.';
/**
* Mit is_dir() prüfen wir, ob der
* angegebene Ordner ein Verzeichnis ist.
*/
if (is_dir($ordner_von_den_bilder) == false) {
echo 'Der Ordner: ' . $ordner_von_den_bilder . ' ist kein Verzeichnis.';
} else {
/**
* Mit file_exists() prüfen wir, ob
* es den angegebenen Ordner gibt.
*/
if (file_exists($ordner_von_den_bilder) == false) {
echo 'Den Ordner: ' . $ordner_von_den_bilder . ' gibt es nicht!';
} else {
$array = array();
/**
* Mit der Funktion opendir()
* öffnen wir das Verzeichnis-Handles.
*/
if ($handle = opendir($ordner_von_den_bilder)) {
/**
* Als nächstes lesen wir mit
* einer Schleife, die Einträge
* des Verzeichnis-Handle und speichern
* die Einträge in der Variabel: $file
*/
while (false !== ($file = readdir($handle))) {
/**
* Nun überprüfen wir die
* Variabel: $file ob im
* Dateinamen die Änderung .gif
* oder .jpg Vorkommen.
*/
if ($file != "." && $file != ".." &&
((strpos($file, '.gif') == true) or
(strpos($file, '.jpg') == true))) {
/**
* Wenn wir anhand der unser
* Vorgaben einen Dateinamen
* gefunden haben, speichern
* wir diesen in einen Array.
*/
$array[] = $file;
}
}
/**
* Mit der Funktion closedir()
* schließen wir den
* Verzeichnis-Handles
*/
closedir($handle);
}
/**
* Nun ermitteln wir in
* der Variable: $array
* die Anzahl der einzelnen
* Einträge.
*/
$anzahl_in_array = count($array);
/**
* Da ein Array bei Null
* anfängt, müssen wir -1
* abziehen, um per Zufall
* eine Zahl von 0 bis Anzahl
* der Array Elemente zu ermitteln.
*/
$anzahl_bilder = ($anzahl_in_array - 1);
/**
* Wenn wir in $array keine
* Dateinamen gefunden haben,
* geben wir eine Fehlermeldung
* aus. Ansonsten wird das
* Bild ausgegeben.
*/
if ($anzahl_in_array == 0) {
echo 'Es gibt in den Ordner: ' .
$ordner_von_den_bilder . ' keine Bilder';
} else {
echo '<p>Es gibt in den Ordner: ' .
$ordner_von_den_bilder . ' insgesamt ' .
$anzahl_in_array . ' Bilder.</p>';
/**
* Mit der Funktion rand()
* ermitteln wir einen
* Schlüssel des Array
* per Zufall.
*/
$zufall_key = rand(0, $anzahl_bilder);
echo '<img src="' . $ordner_von_den_bilder .
'/' . $array[$zufall_key] . '">';
}
}
}
?>
Erläuterung:
Dieser PHP-Code ermöglicht es, zufällig ein Bild aus einem bestimmten Ordner auszuwählen und dieses dann anzuzeigen. Zuerst wird der angegebene Ordner darauf geprüft, ob es sich hierbei um ein Verzeichnis handelt. Ist dies nicht der Fall, wird eine Fehlermeldung angezeigt. Danach wird geprüft, ob der angegebene Ordner überhaupt existiert. Ist dies nicht der Fall, wird ebenfalls eine Fehlermeldung angezeigt. Danach wird ein Array erstellt, welches die Dateinamen speichert.
Mithilfe der Funktion opendir() wird das Verzeichnis geöffnet und es werden mit einer Schleife alle Einträge des Verzeichnis-Handles durchsucht. Diese werden dann in der Variabel $file gespeichert. Nun wird überprüft, ob im Dateinamen die Änderung .gif oder .jpg vorkommen. Ist dies der Fall, wird der Dateiname in das Array gespeichert. Danach wird das Verzeichnis mithilfe der Funktion closedir() geschlossen.
Mit count() wird die Anzahl der Einträge in der Variabel $array ermittelt. Da ein Array bei Null anfängt, müssen wir diesen Wert um 1 verringern, damit wir eine Zahl von 0 bis Anzahl der Array Elemente erhalten. Danach wird überprüft, ob wenigstens ein Dateiname im Array gespeichert wurde. Ist dies nicht der Fall, wird eine Fehlermeldung angezeigt. Ansonsten wird mithilfe der Funktion rand() ein Schlüssel des Arrays zufällig ermittelt. Die entsprechende Grafik wird danach angezeigt.
Sie können die Datei zum Beispiel zufall_bild.php nennen und dann per PHP Include, die Datei in Ihr PHP Script einbinden. Hier noch eine kleine Auflistung der einzelnen Funktionen in diesem Tutorial verwendet wurden.
Funktionsliste:
Array – hier wird erklärt, was ein Array ist
If-Anweisung – mehrere Beispiele, wie sie eine If-Anweisung verwenden
Php Variablen – da nicht jeder weiß, was eine Variable ist, finden sie dazu hier eine Erklärung