关于生成不重复序号的问题

来源:互联网 发布:mfcsocket编程 编辑:程序博客网 时间:2024/05/21 17:13

 很多情况下我都是通过数据库的自增来生成不重复的序号的

 

最近发现了一个不错的函数

 

uniqid()

 

可以生成基于微秒计的当前时间的唯一的 ID。

 

试了下,还真不错,

 

对于生成SESSIONID来说是个不错的选择

 

试了下,在同一页面,调用此函数10,显示微秒数相同,ID号不相同

 

语法

uniqid(prefix,more_entropy)
prefix可选。为 ID 规定前缀。如果两个脚本在相同的微妙生成 ID,该参数很有用。
more_entropy可选。规定位于返回值末尾的更多的熵。
对于访量很大的情况下,如同一微秒内有上千个人的请求下,可以把第二个参数设为TRUE
这样可以让结果的唯一性更好。不过那样的话生成的长度为23位(其中有一个小数点),否则为13位
手册上推荐的用法为:
// better, difficult to guess
$better_token = md5(uniqid(rand(), true));
个人认为MD5加与不加一个样,同一个ID生成的MD5肯定是一样的,呵呵
记下以备后用
原创粉丝点击