首頁 > 後端開發 > PHP問題 > php生成不重複id

php生成不重複id

(*-*)浩
發布: 2023-02-25 08:32:01
原創
2593 人瀏覽過

產生唯一不重複的標識我們主要是根據當前的一個時間time然後再轉換在md5值,這樣幾乎是可以保證標籤的唯一性,下面整理了一些關於PHP生成不重複標識符程序代碼

php生成不重複id

php內建函數uniqid()

#uniqid() 函數是基於以微秒計的當前時間,產生一個唯一的ID.(推薦學習:PHP程式設計從入門到精通

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

下面方法回傳結果類似:5DDB650F-4389-F4A9-A100-501EF1348872

function uuid() {
    if (function_exists ( 'com_create_guid' )) {
        return com_create_guid ();
    } else {
        mt_srand ( ( double ) microtime () * 10000 ); //optional for php 4.2.0 and up.随便数播种,4.2.0以后不需要了。
        $charid = strtoupper ( md5 ( uniqid ( rand (), true ) ) ); //根据当前时间(微秒计)生成唯一id.
        $hyphen = chr ( 45 ); // "-"
        $uuid = '' . //chr(123)// "{"
substr ( $charid, 0, 8 ) . $hyphen . substr ( $charid, 8, 4 ) . $hyphen . substr ( $charid, 12, 4 ) . $hyphen . substr ( $charid, 16, 4 ) . $hyphen . substr ( $charid, 20, 12 );
        //.chr(125);// "}"
        return $uuid;
    }
}
登入後複製

#php產生全球唯一識別碼(GUID)的方法

GUID在空間上和時間上具有唯一性,保證同一時間不同地方產生的數字不同。

世界上的任何兩台電腦都不會產生重複的 GUID 值。

需要GUID的時候,可以完全由演算法自動生成,不需要一個權威機構來管理。 ######GUID的長度固定,且相對而言較短小,非常適合排序、識別和儲存。 ###
<?php
//php生成GUID
function getGuid() {
 $charid = strtoupper(md5(uniqid(mt_rand(), true)));
 
 $hyphen = chr(45);// "-"
 $uuid = substr($charid, 0, 8).$hyphen
 .substr($charid, 8, 4).$hyphen
 .substr($charid,12, 4).$hyphen
 .substr($charid,16, 4).$hyphen
 .substr($charid,20,12);
 return $uuid;
}
?>
登入後複製

以上是php生成不重複id的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板