中建材建设有限公司网站,jsp 响应式网站模板,医院网站域名备案,无锡微网站php生成唯一ID的5种方法介绍
工作中使用到唯一ID的场景非常多#xff0c;如临时缓存文件、临时变量、临时安全码等。
uniqid()函数基于以微妙计的当前时间#xff0c;生成一个唯一的ID。由于生成唯一ID与微妙时间关联#xff0c;因此生成ID的唯一性非常可靠。
生成的唯一…php生成唯一ID的5种方法介绍
工作中使用到唯一ID的场景非常多如临时缓存文件、临时变量、临时安全码等。
uniqid()函数基于以微妙计的当前时间生成一个唯一的ID。由于生成唯一ID与微妙时间关联因此生成ID的唯一性非常可靠。
生成的唯一ID默认返回的字符串有13个字符长如果再结合MD5()函数生成的唯一ID可靠性将更高这种生成的ID比随机性的ID最大优点在于可实现排序特别是一些需要存储在数据库中的值。当然在这里也可以加入随机数。
下面主要介绍4种生成唯一ID的方法
1、md5(time().mt_rand(1,1000000))
注意这种方法有一定的概率会出现重复
2、md5(microtime(true).mt_rand(1,1000000))
注意这种方法有一定的概率会出现重复比上一个略好
3、php内置函数uniqid()
uniqid()函数基于以微妙的当前时间生成一个唯一的ID。
echo uniqid();echo uniqid();echo uniqid();OUTPUT:5a4b62dd4aeea5a4b62dd4aff75a4b62dd4b069w3school参考手册有一句话:“由于基于系统时间通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID请使用 md5() 函数”。
4、结合md5()函数生成一个唯一的ID
echo md5(uniqid());
OUTPUT:0ac3d6e99b7f5290c93d730eaf9d7d945、手动去处理官方给予的案例
public function create_guid($namespace ) { static $guid ;$uid uniqid(, true);$data $namespace;$data . $_SERVER[REQUEST_TIME];$data . $_SERVER[HTTP_USER_AGENT];$data . $_SERVER[LOCAL_ADDR];$data . $_SERVER[LOCAL_PORT];$data . $_SERVER[REMOTE_ADDR];$data . $_SERVER[REMOTE_PORT];$hash strtoupper(hash(ripemd128, $uid . $guid . md5($data)));$guid { .substr($hash, 0, 8) .- .substr($hash, 8, 4) .- .substr($hash, 12, 4) .- .substr($hash, 16, 4) .- .substr($hash, 20, 12) .};return $guid;}返回结果类似E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7