Beispiel Bildergalerie erstellen

Im Folgenden wollen wir eine automatische Bildergalerie erstellen. Dazu benötigen wir als Vorkenntnisse das Kapitel über Verzeichnis einlesen und das vorhergehende Kapitel über Arrays.

Im ersten Schritt lesen wir ein Verzeichnis aus und speichern alle gefundenen Dateinamen der Bilder in einem Array ab.

PHP-Quellcode: Verzeichnis auslesen und in Array speichern
<?php
$verzeichnis = ".";
 
if (is_dir($verzeichnis))
{
    if ( $handle = opendir($verzeichnis) )
    {
        while (($file = readdir($handle)) !== false)
        {
            echo "<li>filename: $file ";
            echo "<li>filetype: ". filetype( $file) . "<hr>\n";
            // Test, ob ein Bilder (Endung .jpg) vorliegt
            if ( filetype( $file) == "file"
                 AND substr( $file, -4) == ".jpg")
            {
                // Dateiname wird im Array bilderdateinamen 
                // gespeichert
                $bilderdateinamen[] = $file;
            }
        }
        closedir($handle);
    }
}
 
// Ausgabe der Bilderdateinamen zur Kontrolle
echo "<pre>";
print_r ( $bilderdateinamen );
?>

Im nächsten Schritt benötigen wir Bilder - nehmen Sie folgenden Bilder zum Testen (auf jeden Fall diese für den Aha-Effekt für die automatische Beschriftung ;) Folgende Bilder werden hier verkleinert dargestellt:

Die Bilder stammen von mir (und können deshalb auch zum Testen eingesetzt werden) und weitere Bilder zum Thema Urlaub in und um Las Vegas können auf http://www.las-vegas-urlaub.com angesehen werden.

Testbild Löwen für das Programm Bildergalerie erstellen

Testbild Sonnenuntergang für das Programm Bildergalerie erstellen

Testbild Hoover Damm für das Programm Bildergalerie erstellen

Die Bilder können durch Anklicken mit der rechten Maustaste auf der eigenen Festplatte gespeichert werden. Die müssen im selben Verzeichnis gespeichert werden, wo auch das Programm zum Bildergalerie gespeichert ist!

PHP-Quellcode: Ausgabe der Bilder mit Zusatzinformationen
<?php
$verzeichnis = ".";
 
if (is_dir($verzeichnis))
{
    if ( $handle = opendir($verzeichnis) )
    {
        while (($file = readdir($handle)) !== false)
        {
            echo "<li>filename: $file ";
            echo "<li>filetype: ". filetype( $file) . "<hr>\n";
            // Test, ob ein Bilder (Endung .jpg) vorliegt
            if ( filetype( $file) == "file"
                 AND substr( $file, -4) == ".jpg")
            {
                // Dateiname wird im Array bilderdateinamen
                // gespeichert
                $bilderdateinamen[] = $file;
            }
        }
        closedir($handle);
    }
}
 
// Ausgabe der Bilderdateinamen zur Kontrolle
echo "<pre>";
print_r ( $bilderdateinamen );
echo "<hr />";
 
foreach ( $bilderdateinamen AS $dateiname )
{
    echo "Dateiname: $dateiname:<br />\n";
 
    $exif = exif_read_data($dateiname, ANY_TAG, true, true);
 
    // print_r ($exif);
 
    echo "<h2>". $exif['WINXP']['Title'] . "</h2>";
    echo "<img src=\"$dateiname\"";
    echo $exif['COMPUTED']['html'];
    echo " alt=\"";
    echo $exif['WINXP']['Title'];
    echo '" \> ';
 
    echo "<hr />";
}
?>

Bestimmt kommt gerade die Frage auch, woher um Gottes willen der Bildtitel kommt, der nichts mit dem Dateinamen zu tun hat? Der ist in der Bilddatei mit integriert. Dies ist einfach möglich durch IPTC und EXIF. Diese Daten lesen wird im unserem PHP-Programm zum Bildergalerie erstellen aus. Es geschieht über exif_read_data und die gewonnenen Daten wandern in das Array $exif. Lassen Sie sich einfach mal über print_r den Inhalt des Array $exif anzeigen!

Um Titel und Verschlagwortung in die Bilder zu integrieren, empfiehlt sich Windows Vista (wie im nächsten Bild zu sehen ist) oder auch verschiedene andere Programme können dazu hergenommen werden, wie beispielsweise das bekannte IrfanView.

Bilder mit Titel versehen, der in der Bilddatei gespeichert wird - durch IPTC und EXIF einfach möglich