嘿伙计们,我正在尝试找到一种方法来生成一个放置在URL中的UID。现在我正在寻找在不使用db的顺序索引的情况下创建UID的方法。这就是我想出来的。
据我所知,如果它们都是以相同的1/10000秒创建的,那么它应该只创建重复项。
function uid()
{
list($usec, $sec) = explode(" ", microtime());
$prec = 5;
$usec = round($usec, $prec);
$sec = round($sec - ($sec / 1.001), $prec);
$time = ($sec + $usec);
return base_convert($time, 10, 36);
}
关于为什么这个功能是个坏主意的任何想法?
答案 0 :(得分:0)
为什么不使用PHP的真正的uid功能?这应该提供真正唯一的标识符:http://php.net/manual/en/function.uniqid.php
对于符合v4的UUID,请查看以下主题:PHP function to generate v4 UUID
答案 1 :(得分:0)
嗯..也许是因为自动增量整数主要是为了这个? 仍有可能存在相同的ID
答案 2 :(得分:0)
不要重新发明轮子。像MD5,SHA1,CRC32等哈希函数最适合这种情况。请记住,哈希密钥越短,冲突的可能性就越大。