19. April 2024

PHP: Zufallszeichen ausgeben

Es gibt zwei verschiedene Möglichkeiten um in PHP ein Zufallszeichen auszugeben. Beide Möglichkeiten werden hier vorgestellt, da beide häufig Anwendung finden, das Anwendungsgebiet sich allerdings unterscheidet.

Möglichkeit 1: Zeichen aus Array zufällig ausgeben

Eine einfache Möglichkeit ein zufälliges Zeichen in PHP auszugeben basiert auf einem Array. Der Vorteil hierbei ist, dass man genau festlegen kann, welcher Zeichenvorrat verwendet werden soll. Soll zum Beispiel das gesamte lateinische Alphabet in Groß- und Kleinbuchstaben ohne b (und B) im Zeichenvorrat sein, so lässt man b (und B) im Array einfach weg.

Hier der Beispielscode:

 <?php
 $zeichen = array('a','c','d','e','f','g','h','i','j','k','l','m', 
                    'n','o','p','q','r','s','t','u','v','w','x','y','z', 
                    'A','C','D','E','F','G','H','I','J','K','L','M',
                    'N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
    
    echo "Zufallszeichen: ".$zeichen[rand(0,49)];
                    
?>

Im Array wurden b und B ausgelassen. Bei der Ausgabe wird mit rand() ein zufälliges Zeichen aus dem Array ausgewählt.

Der Code führt zu dieser (zufallsabhängigen) Ausgabe (Laden Sie diese Seite neu, um ein anderes Zufallszeichen zu sehen): 

Zufallszeichen: p

Möglichkeit 2: Zufallszeichen per HTML Code ausgeben

In HTML lassen sich Zeichen auch wiefolgt aufrufen:

&#97; für a

&#98; für b

(Siehe auch Vollständige HTML Zeichentabelle)

Die Nummern für die Zeichen lassen sich ganz einfach mit rand() generieren:

 <?php
    echo "Zufallszeichen: &#".rand(97,122).";";            
?> 

Der Code führt zu dieser (zufallsabhängigen) Ausgabe: 

Zufallszeichen: s

Auch hier lassen sich Bereiche abgrenzen (wie im Beispiel 97-122, der Bereich der lateinischen Kleinbuchstaben), allerdings sind Außnahmeregeln, wie z.B. das Auslassen von einzelnen Zeichen wie ‚b‘ nur mit umständlichen Konstrukten zu lösen, weshalb Möglichkeit 1 für solche Fälle besser geeignet wäre. Dafür braucht Möglichkeit 2 nur eine Zeile Code.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert