產生唯一不重複的標識我們主要是根據當前的一個時間time然後再轉換在md5值,這樣幾乎是可以保證標籤的唯一性,下面整理了一些關於PHP生成不重複標識符程序代碼
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中文網其他相關文章!