本文阐述了uniqid使用()
函数在PHP。
分享给你供你
参考。具体
方法如下:
的uniqid()函数生成一个基于微秒计目前唯一的ID。
注意:由于
系统时间,这个函数生成的ID不是最好的。如果需要生成绝对唯一的ID,请使用MD5()函数(请在字符串函数引用中查找)。
复制代码代码如下:< PHP
uniqid(回声);
>
这个示例生成一个32字符的惟一字符串。
复制代码代码如下:< PHP
$令牌= MD5(uniqid(RAND())));
回波$令牌;
>
Uniqid()返回一个基于当前时间精确到微秒的前缀的独特身份。
它只是基于当前的时间,但它不能解释与当前时间的关系。
回声uniqid();你可以看到uniqid总是在不断变化13长十六号。
请看下面的代码:
复制代码代码如下:< PHP
Echo hexdec (uniqid ()) / (time () +microtime ());
>
产量基本上在1048576左右。
可以得出结论,uniqid是当前时间精确到微秒,乘以1048576(2的2的20的功率),最后
转换为十六。
当你知道uniqid和时间之间的关系,uniqid能够得到更加广泛的应用,例如,在一个论坛,你可以使用uniqid作为后
文件名。
在邮政索引中,按时间查找邮件是非常方便的。
结合上面和下面的代码,我认为他的角色是生成一个不重复的32位字符。
(uniqid)函数本身是基于当前时间以微秒计,所以在高并发的
情况下会反复出现,
解决的方法是一个随机数,你可以在这个前提下再生,并产生一个新的号码,这将减少重复的概率。如果你想更精确,你也可以添加客户端的IP的MD5码的同代人,所以重复的概率应该是很低的,这几乎是不可能重复。
复制代码代码如下:< PHP
函数getRand(){
返回uniqid()。兰德(1, 100000);
}
回声getRand();
出口;
>
希望本文能对大家的PHP
程序设计有所帮助。