使用PHPuniqid函数生成一个唯一的ID

使用PHPuniqid函数生成一个唯一的ID
应用场景生成唯一的ID是很常见的,如临时缓存文件名,临时变量,临时安全代码,等uniqid()函数生成一个基于微秒电流时间唯一的ID,ID的唯一性是非常可靠,因为唯一的ID生成与微秒的时间关联
只有id生成的默认字符串返回13个字符串长度,如果不只是前缀ID的定义,返回最多23个字符,如果与MD5(id)函数相结合,只生成生成的id ID的概率最大,在实现排序方面的随机性最大,特别是一些需要存储在数据库中的值。

首先,函数原型
字符串(字符串的前缀uniqid { {,布尔more_entropy } })
可以定义唯一ID的前缀和长度。
二、版本兼容性

PHP 3,PHP 4,PHP 5

三、功能基用法和示例

1,生成唯一ID
< PHP
uniqid(回声);
>
2,结合MD5()函数生成唯一ID
< PHP
回声MD5(uniqid());
>
输出:dfbc5c8c6438de075da28b3c8a413fd0

3,生成多个唯一id,因为它是微秒级的。
< PHP
uniqid(回声);
uniqid(回声);
uniqid(回声);
>
输出:

4bfd0e375396b

4bfd0e3753981

4bfd0e3753983
从产生的结果,唯一的ID排序。

使用的uniqid()函数来生成一个唯一的ID可以用于生成临时身份证和永久的唯一ID(存储库)。

ps的几种解决方案:PHP生成唯一ID

下面的小编辑器已经安排了三个解决方案。具体内容如下:

1,MD5(时间())。mt_rand(11000000));

这种方法有一定的重复概率。

2、PHP内置函数uniqid()

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

在w3school参考手册有一句话:因为系统时间,通过这个函数生成的ID是不是最好的。如果你需要生成一个独一无二的ID,使用MD5()函数。

以下方法返回一个类似的结果:5ddb650f-4389-f4a9-a100-501ef1348872
功能的UUID(){
如果(function_exists('com_create_guid ')){
返回com_create_guid();
{人}
mt_srand((双)瞬时()×10000); / / PHP 4.2.0可选的了。随机数的播种,不需要后来4.2.0。
charid美元= strtoupper(MD5(uniqid(RAND),(真的))); / /根据当前时间(微秒计)来生成一个唯一的ID.
$字符= CHR(45); / /
$ UUID =。 / / CHR(123){ / /
substr(charid美元,0, 8)。$字符。substr(charid美元,8, 4)。$字符。substr(charid美元,12, 4)。$字符。substr(charid美元,16, 4)。substr。
/ /。chr(125); / / }
返回的UUID;
}
}
com_create_guid()是PHP产生唯一的ID的方法,它似乎已经在PHP5。

三.官方uniqid()参考手册,有一个用户提供的方法,和结果是相似的:{ e2dfffb3-571e-6cfc-4b5c-9fedaaf2efd7 }
公共功能create_guid($命名空间=){
静态$=;
$ uid = uniqid(
元=命名空间;
数据_server美元美元'request_time'} {;
数据_server美元美元'http_user_agent'} {;
数据_server美元美元'local_addr'} {;
数据_server美元美元'local_port'} {;
数据_server美元美元'remote_addr'} {;
数据_server美元美元'remote_port'} {;
strtoupper散列(hash =美元(美元'ripemd128,UID。$ GUID。MD5($))
$ ={。
substr($散列,0, 8)。
-。
substr($散列,8, 4)。
-。
substr($散列,12, 4)。
-。
Substr ($hash, 16, 4).
-。
substr($散列,20, 12)。
};
返回$ GUID;
}
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部