Reihenfolge von 3 Werbeeinblend. mit PHP rotieren

Claus Lehmann

Angesehenes Mitglied
Hallo,

ich habe in einem Blog rechts drei Werbeplätze. Die Reihenfolge (oben, mitte, unten) in der die gebuchte Werbung dort gezeigt wird möchte ich zufällig rotieren, damit alle 3 Anzeigenkunden den gleichen Gegenwert für ihr Geld bekommen.

Ich möchte das effizient in PHP und ohne DB-Zugriff oder Filezugriff machen (bitte auch keine Widgets).

Mir fällt dazu folgendes ein:
CODE
$rest = time()%3
switch ($rest) {
case 0:
echo '<img src="ad1.png"><img src="ad2.png"><img src="ad3.png">';
break;
case 1:
echo '<img src="ad2.png"><img src="ad3.png"><img src="ad1.png">';
break;
case 2:
echo '<img src="ad3.png"><img src="ad1.png"><img src="ad2.png">';
break;
}



Das müsste doch von der Performance ganz gut sein. Oder was wäre noch besser?
Vorschläge?
 
rand() ?
wink.gif
 
um das ganze besser verwalten zu können würde ich das in einen array packen und die elemente per zufall rotieren lassen
 
Systemaufrufe sind immer vergleichsweise teuer, time() ist also nicht ganz billig. Ob es günstiger kommt, als rand() ist allerdings auch wieder systemabhängig (ob es z.B. an /dev/random oder /dev/urandom gebunden ist). Solange Du aber keinen gigantischen Traffic hast, ist das wurscht.
 
$ads = array('ad1','ad2','ad3');
$rand = array_rand($ads,1);

//deine werbung:
$AD = $ads[$rand[0]];
 
ich mach das immer oberbillig:

<?
srand(microtime()*1000000);
$expansion = rand(1,6);



if ($expansion == "1") {
include("ad1.inc");
}
else
if ($expansion == "2") {
include("ad2.inc");
}
else
if ($expansion == "3") {
include("ad3.inc");
}
else
if ($expansion == "4") {
include("ad4.inc");
}
else
if ($expansion == "5") {
include("ad5.inc");
}
else
if ($expansion == "6") {
include("ad1.inc");
}

?>
 
Zurück
Oben