php中利用uniqid() 函數生成唯一的id
function createId($prefix = "")
{
$str = md5(uniqid(mt_rand(), true));
return $prefix . $str;
}
//
uniqid(prefix,more_entropy)
uniqid() 函數基於以微秒計的當前時間,生成一個唯一的 ID。
prefix 可選。為 ID 規定前綴。如果兩個腳本恰好在相同的微秒生成 ID,該參數很有用。
more_entropy 可選。規定位於返回值末尾的更多的熵。
如果 prefix 參數為空,則返回的字符串有 13 個字符串長。如果 more_entropy 參數設置為 true,則是 23 個字符串長。
如果 more_entropy 參數設置為 true,則在返回值的末尾添加額外的熵(使用組合線形同余數生成程序),這樣可以結果的唯一性更好。
返回值
以字符串的形式返回唯一標識符。
提示和注釋
注釋:由於基於系統時間,通過該函數生成的 ID 不是最佳的。如需生成絕對唯一的 ID,請使用 md5() 函數(請在字符串函數參考中查找)
//
mt_rand() 使用 Mersenne Twister 算法返回隨機整數。
mt_rand(min,max)
說明
如果沒有提供可選參數 min 和 max,mt_rand() 返回 0 到 RAND_MAX 之間的偽隨機數。例如想要 5 到 15(包括 5 和 15)之間的隨機數,用 mt_rand(5, 15)。
很多老的 libc 的隨機數發生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數默認使用 libc 隨機數發生器。mt_rand() 函數是非正式用來替換它的。該函數用了 Mersenne Twister 中已知的特性作為隨機數發生器,它可以產生隨機數值的平均速度比 libc 提供的 rand() 快四倍。