PHP生成GUID的函數


GUID: 即Globally Unique Identifier(全球唯一標識符) 也稱作 UUID(Universally Unique IDentifier) 。 GUID是一個通過特定算法產生的二進制長度為128位的數字標識符,用於指示產品的唯一性。GUID 主要用於在擁有多個節點、多台計算機的網絡或系統中,分配必須具有唯一性的標識符。

在 Windows 平台上,GUID 廣泛應用於微軟的產品中,用於標識如如注冊表項、類及接口標識、數據庫、系統目錄等對象。 

GUID 的格式為“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每個 x 是 0-9 或 a-f 范圍內的一個32位十六進制數。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即為有效的 GUID 值。 

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

★世界上的任何兩台計算機都不會生成重復的 GUID 值。

★需要GUID的時候,可以完全由算法自動生成,不需要一個權威機構來管理。

★GUID的長度固定,並且相對而言較短小,非常適合於排序、標識和存儲。

 

PHP生成GUID的函數(摘自PHP手冊)

/**
 * 生成GUID
 */
function create_guid() {
	if (function_exists('com_create_guid') === true) {
		return trim(com_create_guid(), '{}');
	}

	return sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));
}

 

做了下優化(項目中常用):

/**
 * 生成GUID
 */
function string_make_guid() {
	// 1、去掉中間的“-”,長度有36變為32
	// 2、字母由“大寫”改為“小寫”
	if (function_exists('com_create_guid') === true) {
		return strtolower(str_replace('-', '', trim(com_create_guid(), '{}')));
	}

	return sprintf('%04x%04x%04x%04x%04x%04x%04x%04x', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM