Logo 01-Scripts.de

Artikel, Tutorials & Codeschnipsel

Wissen Zufälliges Bild anzeigen

Zufälliges Bild anzeigen

Die (pseudo) Zufalls-Funktion in PHP kann für ganz verschiedene Aufgaben genutzt werden. In vorliegendem Tutorial soll es darum gehen bei jedem Seitenaufruf ein zufälliges Bild aus einem Verzeichnis auszugeben.

Für die einfachste Art dies zu realisieren wird ein Unterverzeichnis images/ angelegt. Den Pool an Bildern aus dem wir jeweils ein zufälliges Bild ausgeben möchten kopieren wir in dieses soeben angelegte Verzeichnis. Nun müssen alle Bilder umbenannt werden und nach folgendem Schema benannt werden:

  • 1.jpg
  • 2.jpg
  • 3.jpg
  • ...
  • 10.jpg
  • 11.jpg
  • ...

In unserer PHP-Datei beginnen wir nun mit folgendem PHP-Code, der im vorliegenden Beispiel eine Zufallszahl zwischen 1 (minimaler Wert der Zufallszahl) und 5 (maximaler Wert) ermittelt:

$zufall = mt_rand(1, 5);

Um bei dieser Methode ein zufälliges Bild aus dem Verzeichnis images/ auszugeben, muss als maximaler Wert die maximale Anzahl an Bildern, die in dem Verzeichnis vorhanden sind, eingetragen werden.

An der Stelle an der das Zufallsbild ausgegeben werden soll, wird folgender Code eingefügt:

<img src="images/<?PHP echo $zufall; ?>.jpg" alt="Alternativtext zum Bild" />

Mit dieser Funktion ist es auch möglich zuerst eine Thumbnail-Ansicht des Bildes darzustellen und die original Version der Bilddatei lediglich zu verlinken.
Dazu muss für alle im images/-Verzeichnis enthaltenen Bilder mit einem passenden Programm (z.B. IrfanView oder Faststone ImageViewer) ein entsprechendes Thumbnail generiert und folgendermaßen benannt werden:

  • 1_small.jpg
  • 2_small.jpg
  • ...

Man erhält dadurch dann folgenden Verzeichnisinhalt:

  • 1.jpg
  • 1_small.jpg
  • 2.jpg
  • 2_small.jpg
  • ...

Der HTML-Code zur Bild-Ausgabe verändert sich dann folgendermaßen:

<a href="images/<?PHP echo $zufall; ?>.jpg">
	<img src="images/<?PHP echo $zufall; ?>_small.jpg" alt="Alternativtext zum Bild" />
</a>

Der komplette Quellcode dieser Funktion sieht folgendermaßen aus: