Il existe de nombreux scénarios dans lesquels des identifiants uniques sont utilisés dans le travail, tels que des fichiers de cache temporaires, des variables temporaires, des codes de sécurité temporaires, etc.
La fonction uniqid() génère un identifiant unique basé sur l'heure actuelle en microsecondes. Étant donné que la génération d’un identifiant unique est liée à un moment subtil, le caractère unique de l’identifiant généré est très fiable.
La chaîne renvoyée par l'ID unique généré comporte 13 caractères par défaut. Si elle est combinée avec la fonction MD5(), la fiabilité de l'ID unique généré sera plus élevée que celle de l'ID unique généré. ID aléatoire. L'avantage est que le tri peut être réalisé, notamment pour certaines valeurs qui doivent être stockées dans la base de données. Bien entendu, des nombres aléatoires peuvent également être ajoutés ici.
Ce qui suit présente principalement 4 méthodes de génération d'identifiants uniques :
1 md5(time().mt_rand(1,1000000))
Remarque : cette méthode a Là. Il y aura une certaine probabilité de duplication
2. La fonction intégrée PHP uniqid()
la fonction uniqid() génère un identifiant unique basé sur l'heure actuelle subtile.
echo uniqid(); echo uniqid(); echo uniqid(); OUTPUT: 5a4b62dd4aeea 5a4b62dd4aff7 5a4b62dd4b069
Il y a une phrase dans le manuel de référence de w3school : "Parce qu'il est basé sur l'heure du système, l'ID généré par cette fonction n'est pas optimal. Si vous devez générer un ID absolument unique, veuillez utiliser le md5 () fonction."
(Tutoriel vidéo gratuit : Tutoriel vidéo php)
3 Combinez la fonction md5() pour générer un identifiant unique
echo md5(uniqid()); OUTPUT: 0ac3d6e99b7f5290c93d730eaf9d7d94
4. go Processing, le cas officiel
public function create_guid($namespace = '') { static $guid = ''; $uid = uniqid("", true); $data = $namespace; $data .= $_SERVER['REQUEST_TIME']; $data .= $_SERVER['HTTP_USER_AGENT']; $data .= $_SERVER['LOCAL_ADDR']; $data .= $_SERVER['LOCAL_PORT']; $data .= $_SERVER['REMOTE_ADDR']; $data .= $_SERVER['REMOTE_PORT']; $hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data))); $guid = '{' . substr($hash, 0, 8) . '-' . substr($hash, 8, 4) . '-' . substr($hash, 12, 4) . '-' . substr($hash, 16, 4) . '-' . substr($hash, 20, 12) . '}'; return $guid; }
renvoie des résultats similaires : E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7
Recommandations associées : tutoriel php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!