C’est toujours pratique d’avoir sous la main une fonction permettant de créer facilement une chaîne aléatoire, très utile pour générer des mots de passe ou tout simplement des idéntifiants « unique ».
Cette Fonction a deux paramètres :
- Le premier $chars permet de spécifier le nombre de caractères souhaités.
- Les second $items contient tous les caractères possible pour la création de cette chaîne.
Voici donc la fonction customHash();
1 2 3 4 5 6 7 8 9 10 11 | function customHash($chars = 6, $items = 'abcdefghijklmnpqrstuvwxyz0123456789'){ $output = ''; $chars = (int)$chars; $nbr = strlen($items); if($chars > 0 && $nbr > 0){ for($i = 0; $i < $chars; $i++){ $output .= $items[mt_rand(0,($nbr-1))]; } } return $output; } |
Il suffit ensuite de l’apeller comme ceci :
1 2 3 4 5 | // Affichera une chaîne de 10 caractères parmi ceux suivants 123abc_* $ma_chaine = customHash(10, '123abc_*'); // Affichera les paramètres de défaut soit une chaîne de 6 caractères parmi ceux suivants abcdefghijklmnpqrstuvwxyz0123456789 $ma_chaine = customHash(); |






Samedi 8 novembre 2008 at 21 h 22 min
Intéressant… Comme il s’agit d’une fonction pour débutant, il est peut-être bon de rappeler que l’appel peut aussi se faire ainsi :
$ma_chaine = customHash(10);
en utilisant la chaine par défaut définie dans la fonction…
Vendredi 5 décembre 2008 at 13 h 11 min
Y a t il un intérêt autre que celui d’avoir possibilité de choisir les caractères … ?
comparé à
uniqid(rand(), true);
Samedi 13 décembre 2008 at 15 h 15 min
Oui justement l’intérêt est de pouvoir choisir les caractères ;)