小编给大家分享一下php如何自动生成不重复的id,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
php函数()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重复,最好的方案是结合md5函数来生成唯一id。
<强>说明强>
<代码>函数字符串(字符串前缀美元=?“[,bool more_entropy美元=false]]) 代码>
获取一个带前缀,基于当前时间微秒数的唯一ID。
<强>参数强>
<代码>前缀代码>
有用的参数例。如:如果在多台主机上可能在同一微秒生成唯一ID。
前缀为空,则返回的字符串长度为13. more_entropy为真,则返回的字符串长度为23。
<代码> more_entropy 代码>
如果设置为真的,函数()会在返回的字符串结尾增加额外的煽(使用结合线性同余发生器)。使得唯一ID更具唯一性。
<强> PHP函数()生成不重复唯一标识方法一强>
这种方法会产生大量的重复数据,运行如下PHP代码会数组索引是产生的唯一标识,对应的元素值是该唯一标识重复的次数。
& lt; PHP ? $=单位数组(); (我=0;i<美元;1000000美元我+ +){ 单位美元[]=函数(); } (值=中的美元单位); 重复美元=[]; foreach(值k=祝辞美元$ v) { 如果(v>美元;1){ 副本($ k)=v美元; } } 回声& # 39;& lt; pre> & # 39;; print_r(副本); 回声& # 39;& lt;/pre> & # 39;; ?在
<强> PHP函数()生成不重复唯一标识方法二强>
这种方法生成的唯一标识重复量明显减少。
& lt; PHP ? $=单位数组(); (我=0;i<美元;1000000美元我+ +){ 单位美元[]=函数(& # 39;& # 39;真正的); } (值=中的美元单位); 重复美元=[]; foreach(值k=祝辞美元$ v) { 如果(v>美元;1){ 副本($ k)=v美元; } } 回声& # 39;& lt; pre> & # 39;; print_r(副本); 回声& # 39;& lt;/pre> & # 39;; ?在
<强> PHP函数()生成不重复唯一标识方法三强>
这种方法生成的唯一标识中没有重复。
& lt; PHP ? $=单位数组(); (我=0;i<美元;1000000美元我+ +){ 函数单位美元[]=md5 (md5((真正的)),真的)); } (值=中的美元单位); 重复美元=[]; foreach(值k=祝辞美元$ v) { 如果(v>美元;1){ 副本($ k)=v美元; } } 回声& # 39;& lt; pre> & # 39;; print_r(副本); 回声& # 39;& lt;/pre> & # 39;; ?祝辞
<强> PHP函数()生成不重复唯一标识方法四强>
使用session_create_id()函数生成唯一标识符,经过实际测试发现,即使循环调用session_create_id()一亿次,都没有出现过重复。
PHP session_create_id()是PHP 7.1新增的函数,用来生成会话id,低版本无法使用。
看完了这篇文章,相信你对PHP如何自动生成不重复的身份有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!