码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-01-21 20:09:40      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

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

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

语法

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

说明

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

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

返回值

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

提示和注释

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

例子

<?php
echo uniqid();
?>

输出类似:

4415297e3af8c


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

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

<?php

function 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));
}

?>


方法三:使用数据库函数

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


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

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

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

标签:

原文地址:http://blog.csdn.net/dreamboycx/article/details/42971667

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!