permalink

0

PHP: Zufallsstring generieren

Heute geht es nicht mehr um Bilder, sondern darum, wie man mit PHP eine Zufallszahl generieren kann. Im Grunde genommen ist es ganz einfach. Man definiert alle möglichen Zeichen und schreibt diese als String in eine Variable. Danach läuft man durch eine for-Schleife und holt sich bei jedem Durchlauf ein zufälliges Zeichen, aus dem vorher definierten String, und setzt diese hintereinander.

<?php
    function random_string($length=50) {
        $characters = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $characters_length = strlen($characters) - 1;
        $rand = '';

        for ($i = 0; $i < $length; $i++) {
            $rand .= $characters[mt_rand(0, $characters_length)];
        }

        return $rand;
    }

    echo random_string();
    echo '<br />';
    echo random_string(6);
?>

Die passende Ausgabe dazu:

UsWtk5LXndpFB2ibeojVwVMLxPQCUSg0vsLLu4t4s0ORyrlEpe
BnUdVE

Die Funktion random_string kann wahlweise mit oder ohne Parameter aufgerufen werden. Wenn sie ohne Parameter aufgerufen wird, ist die Länge ($length) 50.
Vielleicht noch eine Erklärung zu Zeile 8. Wenn man einen String definiert hat, wie z.B. $characters, dann kann man mit einem Index auf jedes Zeichen einzeln zugreifen. Das erste Zeichen hat den Index 0.
Ein Beispiel zu Veranschaulichung:

<?php
    $characters = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

    echo $characters[0];
    echo '<br />';

    $length = strlen($characters) - 1;
    echo $characters[$length];
?>

Ergibt:

1
Z

Zum Schluss noch dies: In der Schleife wird nicht rand() für die Generierung einer Zufallszahl verwendet, sondern mt_rand(). Diese erzeugt laut offiziellen Angaben bessere Zufallszahlen.

Autor: Raphael Niederer

Hallo, mein Name ist Raphael Niederer. Ich bin Webentwickler von Beruf, entwickle aber auch sehr gerne privat an Internetseiten.

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.

*