PHP生成唯一标识uuid
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2019-10-24 10:58:43
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
生成函数
方法一
function greate_uuid() { if (version_compare(PHP_VERSION, '7.1', '>=')) { return md5(session_create_id()); } return md5(uniqid(md5(microtime(true)), true)); }
方法二
/** * 生成UUID 单机使用 * @access public * @return string */ function uuid() { $charid = md5(uniqid(mt_rand(), true)); $hyphen = chr(45); // "-" $uuid = chr(123) // "{" . substr($charid, 0, 8) . $hyphen . substr($charid, 8, 4) . $hyphen . substr($charid, 12, 4) . $hyphen . substr($charid, 16, 4) . $hyphen . substr($charid, 20, 12) . chr(125); // "}" return $uuid; }
测试方法
//生成指定数量的uuid $uuids = []; for ($i = 0; $i < 1000000; $i++) { $uuids[] = greate_uuid(); } //统计数据中值出现的次数 $values = array_count_values($uuids); //遍历出大于1次的uuid $duplicates = []; foreach ($values as $k => $v) { if ($v > 1) { $duplicates[$k] = $v; } } echo '<pre>'; print_r($duplicates); echo '</pre>';
结果为没有重复的值,但是这是在一台机器上使用,如果在分页式中使用需要加每个机器的标识来实现唯一性