Maison > développement back-end > tutoriel php > php生成标准唯一的uuid的方法

php生成标准唯一的uuid的方法

WBOY
Libérer: 2016-06-23 13:41:13
original
3000 Les gens l'ont consulté

方法一:php内置函数uniqid()

uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。

语法

uniqid(prefix,more_entropy)
Copier après la connexion
参数 描述
prefix 可选。为 ID 规定前缀。如果两个脚本恰好在相同的微秒生成 ID,该参数很有用。
more_entropy 可选。规定位于返回值末尾的更多的熵。

说明

如果 prefix 参数为空,则返回的字符串有 13 个字符串长。如果 more_entropy 参数设置为 true,则是 23 个字符串长。

如果 more_entropy 参数设置为 true,则在返回值的末尾添加额外的熵(使用组合线形同余数生成程序),这样可以结果的唯一性更好。

返回值

以字符串的形式返回唯一标识符。

提示和注释

注释:由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数(请在字符串函数参考中查找)。

例子

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

输出类似:

4415297e3af8c
Copier après la connexion


方法二:php内置函数com_create_guid()

com_create_guid函数在生成全局唯一标识符,生成类似于:{ E787D62D-4B4D-492C-9301-6FFD53A1F2D7}这样的字符串,可用trim函数或者其它方法处理掉大括号,即:trim(com_create_guid(), '{}');


<?phpfunction GUID(){    if (function_exists('com_create_guid') === true)    {        return trim(com_create_guid(), '{}');    }    return sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));}?>
Copier après la connexion


方法三:使用数据库函数

如php连接mysql时,可以用mysql_query("select  uuid() as uid");得出唯一id,也可得出类似于:82685c7c-f2a6-1032-b525-fe3407868e36这样的唯一字符串



方法:其它自定义字符串或函数组合

如使用微秒数或者时间戳加上随机数等组合生成唯一ID,类似于:md5(time() . mt_rand(1,1000000));

É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