Incription
RSS

Création d’une chaîne aléatoire

Mardi 14 octobre 2008

Langage : PHP - Type : Fonction - Niveau : Débutant

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();

Cet article a été écrit par :

Johnstyle - qui est l'auteur de 11 article(s).

"Savoir ce que tout le monde sait, c'est ne rien savoir. Le savoir commence là où commence ce que le monde ignore."

Contacter l'auteur

Share and Enjoy: Ces icônes sont des liens vers des sites de partage de signet sociaux où les lecteurs peuvent partager et découvrir de nouveaux liens.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

3 Commentaires

  1. DaftDef

    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…

  2. Anonymous

    Y a t il un intérêt autre que celui d’avoir possibilité de choisir les caractères … ?

    comparé à

    uniqid(rand(), true);

  3. Johnstyle

    Oui justement l’intérêt est de pouvoir choisir les caractères ;)

Laisser un commentaire

:alien: :angel: :angry: :blink: :blush: :cheerful: :cool: :cwy: :devil: :dizzy: :ermm: :face: :getlost: :biggrin: :happy: :heart: :kissing: :lol: :ninja: :pinch: :pouty: :sad: :shocked: :sick: :sideways: :silly: :sleeping: :smile: :tongue: :unsure: :w00t: :wassat: :whistle: :wink: :wub: