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

高洛峰
高洛峰original
2016-12-28 15:32:222028parcourir

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]] )

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();
?>

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

<?php
echo md5(uniqid());
?>

Sortie : dfbc5c8c6438de075da28b3c8a413fd0

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

<?php
echo uniqid();
echo uniqid();
echo uniqid();
?>

🎜>

À 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;
  }
}

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 !

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