PHP如何隨機生成乙個唯一的id

2021-07-15 14:42:10 字數 656 閱讀 3090

開門見山:

echo $str = md5(uniqid(mt_rand(), true));

如上就可以生成乙個唯一的標識了,思路如下:

mt_rand() 使用 mersenne twister 演算法返回隨機整數。如果沒有提供可選引數 min 和 max,mt_rand() 返回 0 到 rand_max 之間的偽隨機數。

uniqid() 函式基於以微秒計的當前時間,生成乙個唯一的 id。

uniqid(prefix,more_entropy)
引數

描述prefix

可選。為 id 規定字首。如果兩個指令碼恰好在相同的微秒生成 id,該引數很有用。

more_entropy

可選。規定位於返回值末尾的更多的熵。

如果 prefix 引數為空,則返回的字串有 13 個字串長。如果 more_entropy 引數設定為 true,則是 23 個字串長。

如果 more_entropy 引數設定為 true,則在返回值的末尾新增額外的熵(使用組合線形同餘數生成程式),這樣可以結果的唯一性更好。

同上的思路,也可以用如下的方法

echo md5(time().mt_rand());

PHP如何生成乙個唯一的訂單編號

下面是乙個生成唯一訂單的方法,這個方法是在某二開框架中擷取的,自認為比較有效好用,所以儲存下來,也在多次使用.生成計畫單號 public function createno table,prefix billno date ymdhis this random 6,true return prefi...

如何生成隨機的唯一編碼

通常來講,oracle中生成隨機唯一編碼的方法就是呼叫sys guid 函式產生16進製制的16個字元的字串,如果用varchar2來儲存guid格式的字串,那就需要32個位元組,如果我們的編碼表的資料量很大,比如 的會員資訊表,其它的業務流水表會非常多地引用會員資訊表的主鍵,這個對儲存成本要求是非...

採用PHP函式uniqid生成乙個唯一的ID

php內建函式研究系列第七期,採用php函式uniqid生成乙個唯一的id,主要討論uniqid 函式的作用和用法。生成唯一id的應用場景非常普遍,如臨時快取檔名稱,臨時變數,臨時安全碼等,uniqid 函式基於以微秒計的當前時間,生成乙個唯一的 id。由於生成唯一id與微秒時間關聯,因此id的唯一...