Maison > php教程 > PHP开发 > Générer un identifiant unique à l'aide de la fonction PHP uniqid

Générer un identifiant unique à l'aide de la fonction PHP uniqid

高洛峰
Libérer: 2016-12-28 15:32:22
original
2038 Les gens l'ont consulté

Les scénarios d'application pour générer des identifiants uniques sont très courants, tels que les noms de fichiers de cache temporaires, les variables temporaires, les 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 temps de microseconde, le caractère unique de l’identifiant est très fiable.

L'ID unique généré renvoie une chaîne de 13 chaînes par défaut. Si le préfixe de l'ID unique n'est pas défini, il peut renvoyer jusqu'à 23 chaînes de longueur s'il est combiné avec le md5(. ), la fiabilité de l'ID unique généré sera plus élevée. Le plus grand avantage de cet ID généré est qu'il peut être trié, en particulier pour certaines valeurs qui doivent être stockées dans la base de données.

1. Prototype de fonction

string uniqid ( [string prefix [, bool more_entropy]] )
Copier après la connexion

peut définir le préfixe et la longueur de l'ID unique

2 Version compatible

PHP 3. , PHP 4, PHP 5

3, utilisation de base et exemples de fonctions

1, générer un identifiant unique

<?php
echo uniqid();
?>
Copier après la connexion

2. Combiné avec la fonction md5() pour générer un identifiant unique

<?php
echo md5(uniqid());
?>
Copier après la connexion

Sortie : dfbc5c8c6438de075da28b3c8a413fd0

3, générer plusieurs identifiants uniques, dus à Mesurés en microsecondes

<?php
echo uniqid();
echo uniqid();
echo uniqid();
?>
Copier après la connexion

🎜>

À en juger par les résultats générés, les identifiants uniques peuvent être triés.

L'utilisation de la fonction uniqid() pour générer un identifiant unique peut être utilisée pour générer à la fois des identifiants temporaires et des identifiants uniques permanents (base de données de stockage).

ps : Plusieurs solutions pour générer des identifiants uniques en php

L'éditeur suivant a compilé trois solutions pour vous, le contenu spécifique est le suivant :

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

Cette méthode a une certaine probabilité de duplication


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

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

Il y a une phrase dans le manuel de référence de w3school : "Parce qu'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 absolu. Pour un identifiant unique, utilisez la fonction md5()".

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

com_create_guid() est fourni avec PHP. la méthode de génération d'un identifiant unique 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>

function uuid() {
  if (function_exists ( &#39;com_create_guid&#39; )) {
    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 = &#39;&#39; . //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

Pour plus d'articles sur l'utilisation de la fonction PHP uniqid pour générer un identifiant unique, veuillez faire attention au site Web PHP 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
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal