Teil 3: Wechselnde Inhalte mit PHP
Tausch von Objekten
Diese Steuerung funktioniert nicht nur bei Webseiten, Sie können auch Objekte auf einer Seite variabel austauschen.
Die Ausgabe eines Bildes erfolgt über den entsprechenden HTML-Befehl, der per Skript zusammengesetzt und anschließend mithilfe von echo ausgegeben wird.
<?php
$pics = array("hund.jpg","katze.jpg",
"maus.jpg");
mt_srand ((double)microtime()
*1000000);
$counter = mt_rand(0,(count($pics)
- 1));
echo "<img src=".$pics[$counter].">";
?>
Das Skript tauscht die Bilder hund.jpg, katze.jpg und maus.jpg aus, die sich im Verzeichnis pics_verz befinden. Im Unterschied zum Skript für den Wechsel von Seiten ist lediglich die Darstellung der Bilder angepasst. Hier wird ein Standard-HTML Befehl verwendet und dynamisch mit dem Namen der Grafik aus dem Array kombiniert.
Zeitsteuerung integrieren
Bis jetzt beruhte der Austausch auf eine zufällig ermittelte Variable - dieses Vorgehen ist jedoch nicht in jedem Zusammenhang ausreichend, vor allem wenn Sie die Kontrolle darüber benötigen, wann welche Inhalte eingeblendet werden, beispielsweise wenn es sich um den Austausch einer Nachricht handelt oder Sie bereits Inhalte vorgearbeitet haben, die erst zu einem bestimmten Zeitpunkt erscheinen sollen.Wurden Sie durch die wechselnden Logos von Google inspiriert und planen für die Fußball-WM, die dieses Jahr zwischen dem 11. Juni und dem 11. Juli stattfindet, ein alternatives Logo auf Ihrer Seite, dann sieht das entsprechende Skript wie folgt aus:

© Archiv
<?
$von=floor((time()-strtotime
("11.06.2010"))/86400);
$bis=floor((time()-strtotime
("11.07.2010"))/86400);
if ($von>=0 and $bis<=0){
echo "<img src=\"fussball.jpg\"
width=\"200\" height=\"100\" alt=\"\"/>";
}
else
{
echo "<img src=\"normales_logo.jpg\"
width=\"200\" height=\"100\" alt=\"\"/>";
}
?>
Als Erstes wird der aktuelle Zeitstempel mit der Funktion time() ermittelt und anschließend davon das Anfangsdatum des Darstellungszeitraums abgezogen. Übrig bleibt ein Wert in Sekunden, den Sie noch durch 86.400 teilen müssen.
Das Resultat ist ein Wert, der größer 1 ist, falls Sie sich in diesem Zeitraum befinden. Die Funktion floor() sorgt zusätzlich dafür, dass die Zahl gegebenenfalls auf die nächste ganze Zahl gerundet wird (siehe hier).