19. April 2024

PHP: Zufallsbild anzeigen

Zufallsbilder braucht man oft bei Bannerwerbung, oder wenn man die Vorschau einer Bildergalerie dynamisch erzeugen will.
Der PHP-Code dafür ist nicht sehr lang und durch die eingefügten Kommentare leicht zu verstehen. Mit der hier gezeigten Variante wird nicht einmal eine Datenbank benötigt!

<?php

$Ordner = "Ordnername"; //Verzeichnis der Bilder festlegen
 
if($Ordnerzeiger = opendir($Ordner)) //Ordner mit Ordnerzeiger öffnen
{   while($Bild = readdir($Ordnerzeiger)) 
    {   if(!is_dir($Bild))
        {
          $Bilder[] = $Bild;
        }
    }

  closedir($Ordnerzeiger); //Ordner mit Ordnerzeiger schließen
}
echo "Zufallsbild:<br>";
//Bild als HTML-Code ausgeben
echo"<img alt=\"Immer gleicher Text bei unterschiedlichen Bildern\" src=\"", 
    $Ordner,
    "/",
    $Bilder[rand(0, count($Bilder)+1)], //Counter für Bilder um 1 erhöhen
    "\" >";

?> 

Hinweis:

Damit das Script funktioniert, dürfen sich nur Bilddateien im festgelegten Verzeichnis befinden. 
Die Namen der Bilder, das Dateiformat (PNG, JPG, GIF, …) und die Auflösung können hingegen variieren.
Die “ müssen mit \ ausgeschlossen werden, da sonst der String an dieser Stelle enden würde und es zu einem PHP-Error kommt.

Wie kann man eine feste Größe für unterschiedlich große Bilder im Script festlegen?
Ergänzen Sie dafür einfach die entsprechenden Attribute in der HTML Ausgabe:

 <?php

$Ordner = "Ordnername"; //Verzeichnis der Bilder festlegen
 
if($Ordnerzeiger = opendir($Ordner)) //Ordner mit Ordnerzeiger öffnen
{   while($Bild = readdir($Ordnerzeiger)) 
    {   if(!is_dir($Bild))
        {
          $Bilder[] = $Bild;
        }
    }

  closedir($Ordnerzeiger); //Ordner mit Ordnerzeiger schließen
}
echo "Zufallsbild:<br>";
//Bild als HTML-Code ausgeben
echo"<img alt=\"Immer gleicher Text bei unterschiedlichen Bildern\" src=\"", 
    $Ordner,
    "/",
    $Bilder[rand(0, count($Bilder)+1)], //Counter für Bilder um 1 erhöhen
    "\" width=\"100px\" height=\"100px\" >"; //witdh und height Attribute im HTML Code ergänzen

?> 

Nicht vergessen: die neuen “ mit \ escapen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert