87 votes

Générer des (pseudo)aléatoire chaînes alphanumériques

Comment puis-je générer une (pseudo)aléatoire chaîne alphanumérique, quelque chose comme: 'd79jd8c' en PHP?

166voto

Jeremy Ruten Points 59989

D'abord faire une chaîne avec tous les caractères:

 $characters = 'abcdefghijklmnopqrstuvwxyz0123456789';

Vous pouvez également utiliser range() pour le faire plus rapidement.

Puis, dans une boucle, choisir un nombre aléatoire et de l'utiliser comme index $de caractères chaîne de caractères pour obtenir un caractère aléatoire, et l'ajouter à votre chaîne:

 $string = '';
 for ($i = 0; $i < $random_string_length; $i++) {
      $string .= $characters[rand(0, strlen($characters) - 1)];
 }

$random_string_length est la longueur de la chaîne aléatoire.

4voto

Daniel Points 509

Utiliser la table ASCII pour choisir une série de lettres, où l': $range_start , $range_end est une valeur à partir de la virgule de la colonne dans la table ASCII.

Je trouve que cette méthode est plus agréable par rapport à la méthode décrite où le nombre de caractères est défini explicitement dans une autre chaîne.

// range is numbers (48) through capital and lower case letters (122)
$range_start = 48;
$range_end   = 122;
$random_string = "";
$random_string_length = 10;

for ($i = 0; $i < $random_string_length; $i++) {
  $ascii_no = round( mt_rand( $range_start , $range_end ) ); // generates a number within the range
  // finds the character represented by $ascii_no and adds it to the random string
  // study **chr** function for a better understanding
  $random_string .= chr( $ascii_no );
}

echo $random_string;

Voir Plus:

2voto

Charasan Points 112

Peut-être que j'ai raté quelque chose ici, mais voici un moyen à l'aide de la uniqid() fonction.

2voto

Salman A Points 60620

L'exemple de code à Générer des Chaînes Aléatoires à l'Aide de PHP permet de faire exactement cela. Avec peu de connaissances en php, vous pouvez personnaliser cette fonction pour obtenir le type de chaînes aléatoires dont vous avez besoin:

  • seuls les personnages par exemple ucvtbp3v
  • mélange de chiffres et de caractères par exemple 9JP2E06R
  • mélange de caractères, de chiffres et de symboles par exemple 2sczkf-j

1voto

Brian Warshaw Points 8806

À faire celui qui est de sept caractères comme votre exemple ci-dessus, essayez ceci:

$unique_key = substr(md5(rand(0, 1000000)), 0, 7);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X