如何使用php生成唯一ID的4種方法

2022-08-01 08:54:09 字數 759 閱讀 6019

php生成唯一id的應用場景非常普遍,如臨時快取檔名稱,臨時變數,臨時安全碼等,uniqid()函式基於以微秒計的當前時間,生成乙個唯一的 id。由於生成唯一id與微秒時間關聯,因此id的唯一性非常可靠。

生成的唯一id預設返回的字串有 13 個字串長,如果再結合md5()函式,生成的唯一id可靠性將更高,這種生成的id比隨機性的id 最大優點在於可實現排序,特別是一些需要儲存在資料庫中的值。當然在這件也可以加入隨機數。

1、md5(time() . mt_rand(1,1000000));

這種方法有一定的概率會出現重複

2、php內建函式uniqid()

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

w3school參考手冊有一句話:"由於基於系統時間,通過該函式生成的 id 不是最佳的。如需生成絕對唯一的 id,請使用 md5() 函式"。

3、結合md5()函式生成乙個唯一id

<?php

echo

md5(uniqid

());

?>輸出:defg5c8c6438de075dajs8b3c8a413fd0

4、手動去處理,官方給予的案例。

public

function create_guid($namespace = '') ';

return

$guid; }

返回結果類似:e2dfffb3-571e-6cfc-4b5c-9fedaaf2efd7

php 生成唯一ID

function guid factor prefix suffix 生成因子 機器毫秒,使用者瀏覽器與作業系統資訊,使用者ip,隨機因子,及自定義 factor 因子 原理 自定義 factor 因子 例如可使用使用者 user id 模組標識 product,order.字首 prefix 可用...

php生成唯一id

網上查了下,有很多的方法 1 md5 time mt rand 1,1000000 這種方法有一定的概率會出現重複 2 php內建函式uniqid uniqid 函式基於以微秒計的當前時間,生成乙個唯一的 id.w3school參考手冊有一句話 由於基於系統時間,通過該函式生成的 id 不是最佳的。...

PHP生成唯一ID

php自帶乙個生成唯一id的方法uniqid 我們還可以傳入引數,這個引數作為生成的唯一id的字首,該方法生成的id是基於當前時間微秒數生成的id,保證了id的唯一性。示例 prefix itbsl 說明 string uniqud string prefix bool more entropy f...