PHP uniqid()函数

PHP的uniqid()函数可以生成唯一不重复的ID,而且我们能够从生成的ID中获取生成的时间戳。

$id = uniqid();
echo $id;
echo "\r\n";
$timestamp = hexdec(substr($id,0,8));
echo date('Y-m-d H:i:s', $timestamp);

uniqid函数的原型:

function _uniqid($prefix=''){
    list($micro,$sec) = explode(" " ,microtime());
    $msec =  ($micro*1000000.00)%0x100000;
    return sprintf("%s%x%05x",$prefix,$sec,$msec);
}

但在高并发下,uniqid函数偶尔也会出现重复的ID,这也就是说光用uniqid是不够的,需要拼接一些别的字符,如:使用rand()生成几位随机数再做拼接。