Maison  >  Article  >  développement back-end  >  php génère des identifiants uniques

php génère des identifiants uniques

(*-*)浩
(*-*)浩original
2019-09-27 10:13:122561parcourir

Pour générer des identifiants uniques et non dupliqués, nous utilisons principalement l'heure actuelle, puis la convertissons en valeur md5. Cela peut presque garantir l'unicité de l'étiquette. Vous trouverez ci-dessous un résumé de certains codes de programme pour générer des identifiants non dupliqués. identifiants en PHP

php génère des identifiants uniques

fonction intégrée php uniqid()

la fonction uniqid() est basée à l'heure actuelle en microsecondes, Générez un identifiant unique (Apprentissage recommandé : Programmation PHP de l'entrée à la maîtrise )

Le manuel de référence de w3school contient une phrase : " Parce qu'il est basé sur l'heure du système, l'ID généré par la fonction n'est pas optimal. Pour générer un ID absolument unique, utilisez la fonction md5().

La méthode suivante renvoie des résultats similaires : 5DDB650F-4389-F4A9-A100-501EF1348872

function uuid() {
    if (function_exists ( 'com_create_guid' )) {
        return com_create_guid ();
    } else {
        mt_srand ( ( double ) microtime () * 10000 ); //optional for php 4.2.0 and up.随便数播种,4.2.0以后不需要了。
        $charid = strtoupper ( md5 ( uniqid ( rand (), true ) ) ); //根据当前时间(微秒计)生成唯一id.
        $hyphen = chr ( 45 ); // "-"
        $uuid = '' . //chr(123)// "{"
substr ( $charid, 0, 8 ) . $hyphen . substr ( $charid, 8, 4 ) . $hyphen . substr ( $charid, 12, 4 ) . $hyphen . substr ( $charid, 16, 4 ) . $hyphen . substr ( $charid, 20, 12 );
        //.chr(125);// "}"
        return $uuid;
    }
}

Méthode php pour générer un identifiant globalement unique (GUID)

GUID est unique dans l'espace et dans le temps, garantissant que les différents nombres générés à différents endroits en même temps sont différents.

Aucun ordinateur au monde ne générera de valeurs GUID en double.

Lorsqu'un GUID est requis, il peut être généré de manière entièrement automatique par l'algorithme et ne nécessite pas une organisation faisant autorité pour le gérer.

GUID a une longueur fixe et est relativement court, ce qui est très approprié pour le tri, l'identification et le stockage.

<?php
//php生成GUID
function getGuid() {
 $charid = strtoupper(md5(uniqid(mt_rand(), true)));
 
 $hyphen = chr(45);// "-"
 $uuid = substr($charid, 0, 8).$hyphen
 .substr($charid, 8, 4).$hyphen
 .substr($charid,12, 4).$hyphen
 .substr($charid,16, 4).$hyphen
 .substr($charid,20,12);
 return $uuid;
}
?>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn