Générer un identifiant unique comme sur Youtube en PHP

Publié le 16 novembre 2008 par Dator

J’avais déjà essayé de générer un identifiant unique avec PHP mais je trouvais que celui-ci était beaucoup trop long pour nos sites internet.

J’ai donc planché sur une petite fonction qui permet de générer des identifiants unique avec PHP comme les identifiant de Youtube :

Pour cela j’ai un peu réfléchis et lister tout ce qu’il nous faut !

  • Une chaine de 11 caractères.
  • Une chaine avec des lettres et des chiffres.
  • Des majuscules et des minuscules.

Je suis donc arrivé à cela :

function unique_id($numStr)
{
	srand( (double)microtime()*rand(1000000,9999999) ); // Genere un nombre aléatoire
	$arrChar = array(); // Nouveau tableau

	for( $i=65; $i<90; $i++ ) {
		array_push( $arrChar, chr($i) ); // Ajoute A-Z au tableau
		array_push( $arrChar, strtolower( chr( $i ) ) ); // Ajouter a-z au tableau
	}

	for( $i=48; $i<57; $i++ ) {
		array_push( $arrChar, chr( $i ) ); // Ajoute 0-9 au tableau
	}

	for( $i=0; $i< $numStr; $i++ ) {
		$uId .= $arrChar[rand( 0, count( $arrChar ) )]; // Ecrit un aléatoire
	}
	return $uId;
}

Avec cela, on arrive à une approximation des urls de Youtube :

echo unique_id(11);
// retourne : 1HGanVmAusP ou fgLJiGrWNxF ou UuqRIQkoXs ...

Article original écrit par Dator et publié sur Dator.fr, le 2008. | Lien direct vers cet article | © Dator.fr - 2008
Mot clés: PHP