ホームページ >バックエンド開発 >PHPチュートリアル >メソッド: 他のカスタム文字列または関数の組み合わせ

メソッド: 他のカスタム文字列または関数の組み合わせ

WBOY
WBOYオリジナル
2016-06-13 12:13:501010ブラウズ

PHP が標準の一意の uuid を生成する方法

方法 1: 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() 函数(请在字符串函数参考中查找)。

例子

<?phpecho uniqid();?>

输出类似:

4415297e3af8c


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

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


<?phpfunction GUID(){    if (function_exists(&#39;com_create_guid&#39;) === true)    {        return trim(com_create_guid(), &#39;{}&#39;);    }    return sprintf(&#39;%04X%04X-%04X-%04X-%04X-%04X%04X%04X&#39;, 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));

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。