Générer une suite de caractères aléatoire – Fonction PHP

Petite fonction pour générer une suite de caractères aléatoire pour générer un mot de passe simple, un nom de table, etc. Il suffit de donner la taille de la chaîne souhaitée.

Fonction pour une chaîne aléatoire de caractères

function random_str($nbr) {
    $str = "";
    $chaine = "abcdefghijklmnpqrstuvwxyABCDEFGHIJKLMNOPQRSUTVWXYZ0123456789";
    $nb_chars = strlen($chaine);

    for($i=0; $i<$nbr; $i++)
    {
        $str .= $chaine[ rand(0, ($nb_chars-1)) ];
    }

    return $str;
}

3 Commentaires

  1. benoit à Répondre

    Celui là est un bon script.
    Penser à rajouter un :

    $chaine = random_str(5); // 5 étant la longueur de la chaine
    Reste plus qu’à jouer avec $chaine. :p

  2. Nolwennig à Répondre

    /**
    * @see: http://php.net/manual/fr/function.chr.php
    * @see: http://www.asciitable.com/
    * chr(rand(0, 25)+97); // for [a-z]
    * chr(rand(0, 25)+65); // for [A-Z]
    * chr(rand(0, 9)+48); // for [0-9]
    */
    sinon on peut le faire sans initialiser le tableau des caractères avant, mais juste un tableau de correspondance ascii

    function random_str($nbr) {
    $str = «  »;
    $ascii = array(48, 65, 97);

    for($i=0; $i<$nbr; $i++)
    {
    $str .= chr(rand(0, 25)+$ascii[rand(0,2)]);
    }

    return $str;
    }

  3. Nolwennig à Répondre

    __CORRECTION_DU_COMMENTAIRE_PRECEDENT__
    // j’ai oublié de prendre en compte les numériques

    for($i=0; $i<$nbr; $i++)
    {
    $tbl = $ascii[rand(0,2)];
    $str .= ($tbl != 48) ? chr(rand(0, 25)+$tbl) : chr(rand(0, 9)+$tbl);
    }

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *