Zufallszahl
Max
- php
Hallo,
ist es mit php möglich einen 20 Stelligen Zufallscode zu erstellen, welcher Zahlen, groß und klein Buchstaben enthält?
Vielen Dank schon im Voraus.
Gruß
Max
Hallo,
Spontan fällt mir ein Array aus den gewünschten Zeichne ein, das mit shuffle($array) zufällig sortiert wird und dann mit array_slice($array, 20) die ersten 20 Elemente - und damit den "Code" - zurückgibt.
Viele Grüße
Hallo,
Hallo.
Spontan fällt mir ein Array aus den gewünschten Zeichne ein, das mit shuffle($array) zufällig sortiert wird und dann mit array_slice($array, 20) die ersten 20 Elemente - und damit den "Code" - zurückgibt.
Dann würde aber jedes Zeichen höchstens einmal vorkommen.
Julian hat dir ja schon eine schöne Möglichkeit gezeigt ansonsten könntest du auch noch folgendes probieren.
$hash = md5(microtime());
$hash = substr($hash, 0, 20);
Diese Methode ist schneller. Allerdings kommen nur Hexwerte vor (0-9, a-f).
Grüße
Jasmin
Hallo,
Diese Methode ist schneller. Allerdings kommen nur Hexwerte vor (0-9, a-f).
Um dann einige, aber nicht alle Buchstaben in Großbuchstaben umzuwandeln, würde ich eine Funktion schreiben, die eine Zufallszahl generiert, wenn diese größer als ein bestimmter Wert ist, wandelt sie (vll auch mit regexp), einen Buchstaben in einen großen um, sonst nicht.
Viele Grüße
Hi Max,
möglich ist es natürlich, ich habe etwas ähnliches probiert und es geht, vielleicht nennt dir jemand aber eine einfachere Möglichkeit.
Ich habs so gemacht:
Ich habe eine Zufallszahl erzeugt und dann jeder Zahl einen Buchstaben beziehungsweise eine Zahl zugeordnet, der in eine Variable geschrieben wird. Das wird bei mir acht Mal, bei dir dann 20 mal wiederholt.
Code:
<?php
while ($anzahl<=20){
srand(microtime()*1000000);
$zufall = rand(1,62);
if ($zufall==1) {$zeichen = a;}
if ($zufall==2) {$zeichen = b;}
if ($zufall==3) {$zeichen = c;}
if ($zufall==4) {$zeichen = d;}
if ($zufall==5) {$zeichen = e;}
if ($zufall==6) {$zeichen = f;}
if ($zufall==7) {$zeichen = g;}
if ($zufall==8) {$zeichen = h;}
if ($zufall==9) {$zeichen = i;}
if ($zufall==10) {$zeichen = j;}
..........
..........
..........
$anzahl++;
$Zufallscode .= $zeichen;
}
?>
-------------------
MfG,
Christian
Übrigens gibt es bei der Methode 7.044 * 10^35 verschiedene Kombinationsmöglichkeiten, das sollte zufällig genug sein ;)
MfG,
Christian
Hi,
ist es mit php möglich einen 20 Stelligen Zufallscode zu erstellen, welcher Zahlen, groß und klein Buchstaben enthält?
$len = 20;
$letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
$rand_word = "";
for($i=0;$i<$len;$i++)
$rand_word .= substr($letters,mt_rand(0,strlen($letters)-1),1);
echo $rand_word;
Schöne Grüße
Julian