yubb.de-Logo
Tutorials
yubb@yubb
yubbService
Inside yubb

Zufallsscript mit PHP



Ein Zufallsscript kann man für die diversesten Anwendungen nutzen: Bannereinblendungen, Bilder, Texte und Zitate.
In diesem Tutorial möchte ich euch am Beispiel der Bannereinblendungen zeigen, wie man ein solches Zufallsscript schreibt.

Zuerst wie immer das Script, unten die Erklärungen:
PHP-Datei:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php 
$link
[]='<a href="linkzuseite1.html"><img src="banner1.jpg"></a>'
$link[]='<a href="linkzuseite2.html"><img src="banner2.jpg"></a>'
$link[]='<a href="linkzuseite3.html"><img src="banner3.jpg"></a>'
$link[]='<a href="linkzuseite4.html"><img src="banner4.jpg"></a>'
$link[]='<a href="linkzuseite5.html"><img src="banner5.jpg"></a>'

// Diese Linkreihe kann man nach Belieben weiterführen 


$anzahllinks=count($link); // Zählt die Anzahl der Werte im Array 

srand((double)microtime()*1000000); // Schmeisst den Zufallsgenerator in Gang 
$ausgabe=rand(0,$anzahllinks-1); // Ruft per Zufall einen Banner auf 

echo $link[$ausgabe]; // Gibt aus 
?>


Man macht sich die Technik eines Arrays zu Nutze und speichert in dem Array $link alle Links mit den Banneradressen. Die Liste kann man nach Beilieben weiterführen, nur der Index muss jeweils um eine Zahl erhöht werden.

Nun zählen wir mit count() die Anzahl der Datensätze im Array (in diesem Beispiel wären das eben 5).

Anschließend wird der PHP-interne Zufallsgenerator angeschmissen und da der Zufallsmechanismus immer der gleiche ist, hängen wir uns an einer anderen Stelle ein und lassen den Rest des Alghoritmuses ablaufen. Dafür nutzen wir die aktuelle Zeit.

Mit rand() lassen wir uns nun eine Zufallszahl aus 0 bis zur ermittelten Anzahl der Werte im Array minus 1 (hier also 4) ermitteln. Wir müssen den ermittelten Gesamtwert minus 1 nehmen, da wir ja die Zählung bei 0 anfangen und so die letzte Stelle leer bleiben würde.
Angenommen, es wird der Wert 3 ermittelt. So wird nun in der letzten Zeile derjenige Datensatz ausgegeben, der unter $link[3] steht.

Dieses Zufallsscript kann man, wie gesagt, auch auf andere Anwendungsgebieten anwenden, der Quellcode im Array selbst ist beliebig.

Geschrieben von Phil Marx am 18.06.2004 (8039x gelesen)
weiterempfehlen weiterempfehlen   Druckversion Druckversion   kommentieren kommentieren

oder in einem einzeiler:

echo $link[array_rand($link)];

sollte auch bei arrays mit nicht-numerischen keys funktionieren

http://www.php.net/array_rand
Geschrieben von Nobody