Computer-Masters.de > Artikel > Programmieren > PHP > PHP: Zufallsbild anzeigen

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-Script

<?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 schlieen
}
echo 
"Zufallsbild:<br>";
//Bild als HTML-Code ausgeben
echo"<img alt=\"Immer gleicher Text bei unterschiedlichen Bildern\" src=\""
    
$Ordner,
    
"/",
    
$Bilder[rand(0count($Bilder)+1)], //Counter fr Bilder um 1 erhhen
    
"\" >";

?>
1

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-Script

<?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 schlieen
}
echo 
"Zufallsbild:<br>";
//Bild als HTML-Code ausgeben
echo"<img alt=\"Immer gleicher Text bei unterschiedlichen Bildern\" src=\""
    
$Ordner,
    
"/",
    
$Bilder[rand(0count($Bilder)+1)], //Counter fr Bilder um 1 erhhen
    
"\" width=\"100px\" height=\"100px\" >"//witdh und height Attribute im HTML Code ergnzen

?>
1

Nicht vergessen: die neuen " mit \ escapen.

 

Sie haben noch Fragen?

Nutzen Sie einfach die Kommentarfunktion, die Ihnen auch als unregistrierter Leser zur Verfügung steht!

Gerne wird Ihnen bei Fragen zum Artikel weiter geholfen! Wenn Sie vom Artikel abweichende Fragen haben, können Sie gerne das Forum verwenden!

 

Kommentare

Kommentar von Matthias Schöpe | 2016-04-25

Hallo,
Die dynamische Breite ist eine reine CSS Sache:
Das bekommt man zum Beispiel mit folgender Regel hin:
img {
   width: 75%;
   margin-left: auto;
   margin-right: auto;
   min-width: 600px;
}

Wenn nur Zufallsbilder betroffen sein sollen, kann man einfach eine neue CSS Klasse einführen und sie im Script an die Bilder anhängen.
zb:
CSS:
.random-image { ... }

PHP:
echo '<img class="random-image" ...

 

Wegen des Fehlers, den Sie beschrieben haben:

Im Ordner dürfen sich wirklich nur Bilddateien befinden, da das Script jede Datei einliest (Außer Directories). Befindet sich also z.B. eine txt Datei, versucht es die txt als Bild auszugeben, was natürlich keinen Sinn macht.

Kommentar von Sven Pöppelbaum | 2016-04-21

Hallo,
erstmal vielen lieben Dank, das Script funktioniert soweit (fast) ohne wirkliche Probleme!

Aber:
Wenn es alle Bilder im Ordner einmal durch hat, zeigt es mir dieses "Grafik nicht verfügbar Icon" an mit dem Text: "Immer gleicher Text bei unterschiedlichen Bildern"

Wie bekomme ich dies weg???

Ist es möglich das ganze auch als dynamischen Header zu bauen?
Also, dass die Bilder sich der Breite des Browserfensters anpassen?

Ich habe derzeit ein Foto geschaltet, dass sich zentriert ausrichtet und 75% der Verfügbaren Breite nutzt.

Kann ich diese Eigenschaft auf die Zufallsbilder übertragen???

Besten Dank und liebe Grüße

Sven

Computer-Masters.de > Artikel > Programmieren > PHP > PHP: Zufallsbild anzeigen

Anzeige: