Zufällige Ausgabe mit PHP

  • Hey Leute!

    Auf Grund der häufigen Fragen, was dieses Thema betrifft, stell ich´s einfach mal
    auch in Tutorials rein, in der Hoffnung es hilft vielleicht auch dem einen oder anderen,

    Was ich euch zeige ist, wie via Zufallsfunktion bei jedem Aufruf der Webseite etwas anderes erscheint.
    Bsp.: Jedes mal soll ein anderer Link dastehen:

    Schritt 1:

    PHP
    <?php
    $link1 = "[url='www.link1.de']www.link1.de[/url]";
    $link2 = "[url='www.link2.de']www.link2.de[/url]";
    $link3 = "[url='www.link3.de']www.link3.de[/url]";
    $link4 = "[url='www.link4.de']www.link4.de[/url]";
    $link5 = "[url='www.link5.de']www.link5.de[/url]";

    Zuerst definiert man Variablen, die die verschiedenen Links beinhalten.
    (Man muss dies nicht unbedingt tun, aber es gehört zu einem sauberen Programmierstil. Alternativ könnten man auch direkt bei der if-Funktion durch Text ausgeben lassen ...)

    Schritt 2:

    Code
    $zufallszahl_generieren_von = 1;
    $zufallszahl_generieren_bis = 5;
    $zufallslink = mt_rand($zufallszahl_generieren_von,$zufallszahl_generieren_bis);

    Hier wird der eigentliche Zufall "programmiert". Die ersten beiden Variablen geben das Zahlenfeld an, aus dem die Zahlen generiert werden sollen. Hier möchte ich Zahlen zwischen 1 und 5 (1 und 5 eingeschlossen) generieren.
    Die eigentliche Funktion, die dann den Befehl ausführt heißt mt_rand und das Ergebnis wird in der Variable $zufallslink gespeichert.

    Schritt 3:

    Für jedes Ergebnis (1-5) wird jetzt eine entprechende Reaktion angegeben.
    Es kann jeweils immer nur eine Reaktion ausgeführt werden.
    Mit dem Befehl echo wird dann der entsprechende Link ausgegeben.

    Hier noch einmal der vollständige Code:

    Natürlich geht dies nicht nur mit Links, man kann natürlich auch ganze Texte oder auch Bilder zufällig generieren lassen.

    Wichtig: Die Datei muss eine PHP-Datei sein (Endung: *.php)

    Ich hoffe, dieses Tutorial beantwortet die ein oder andere Frage zum Zufall via PHP.

    Gruß, Chris

  • guten morgen... erstmal schön, dass leute noch tuts schreiben :)
    ich gebe noch eine weitere (wie ich finde einfachere und bessere) methode an.

    Code
    $link[0] = "[url='www.link1.de']www.link1.de[/url]";
    $link[1] = "[url='www.link2.de']www.link2.de[/url]";
    $link[2] = "[url='www.link3.de']www.link3.de[/url]";
    $link[3] = "[url='www.link4.de']www.link4.de[/url]";
    
    
    //count zählt die array elemente
    $zufallszahl = rand(0,count($link));
    echo $link[$zufallszahl];

    bei dieser methode arbeiten wir mit arrays und ohne die if/else abfrage... so müssen wir nicht bei jedem neuem link den kompletten code verändern ;)

  • ja, wunderbar =)

    ich habe sogar noch eine dritte methode, diese ist nicht einfacher, aber praktischer in der bedienung wie ich finde.

    dies ist eine funktion, die ich geschrieben habe, welche einen zufallstext aus einer textdatei holt


    jede zeile in der textdatei (hier: random.txt) entspricht einem text
    zB

    Code
    [url='www.link1.de']www.link1.de[/url]
    [url='www.link2.de']www.link2.de[/url]
    [url='www.link3.de']www.link3.de[/url]
    [url='www.link4.de']www.link4.de[/url]

    und zu guter letzt noch eine beispiel php-datei:


    mfg

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!