Explication détaillée de la façon de générer un identifiant unique en php

零下一度
Libérer: 2023-03-10 16:12:01
original
2889 Les gens l'ont consulté

PHP génère un identifiant unique. Après vérification en ligne, il existe de nombreuses méthodes

1 md5(time() . mt_rand(1,1000000));

Cette méthode a certains. la probabilité sera répétée

2. Fonction intégrée PHP uniqid()

La fonction uniqid() génère un identifiant unique basé sur l'heure actuelle en microsecondes.

Là est une phrase du manuel de référence de w3school : "Comme il est basé sur l'heure 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 la fonction md5()."

La méthode suivante renvoie des résultats similaires : 5DDB650F-4389-F4A9-A100-501EF1348872 Pour plus d'informations, veuillez vous référer à mon article de blog : Exemple PHP

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;
    }
}
Copier après la connexion

com_create_guid() est la méthode de génération d'un identifiant unique fournie avec PHP qui semble avoir disparu après PHP5.
3. Le manuel de référence officiel uniqid() contient des méthodes fournies par les utilisateurs, et les résultats sont similaires : {E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7>

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;
  }
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal