UUID是指在一臺機(jī)器上生成的數(shù)字,它保證對在同一時(shí)空中的所有機(jī)器都是唯一的。
通常平臺 會提供生成UUID的API。UUID按照開放軟件基金會(OSF)制定的標(biāo)準(zhǔn)計(jì)算,用到了以太網(wǎng)卡地址、納秒級時(shí)間、芯片ID碼和許多可能的數(shù)字。
由以 下幾部分的組合:當(dāng)前日期和時(shí)間(UUID的第一個(gè)部分與時(shí)間有關(guān),如果你在生成一個(gè)UUID之后,過幾秒又生成一個(gè)UUID,則第一個(gè)部分不同,其余相 同),時(shí)鐘序列,全局唯一的IEEE機(jī)器識別號(如果有網(wǎng)卡,從網(wǎng)卡獲得,沒有網(wǎng)卡以其他方式獲得),UUID的唯一缺陷在于生成的結(jié)果串會比較長。
關(guān)于 UUID這個(gè)標(biāo)準(zhǔn)使用最普遍的是微軟的GUID(Globals Unique Identifiers)。
在ColdFusion中可以用CreateUUID()函數(shù)很簡單的生成UUID,其格式為:xxxxxxxx-xxxx-xxxx- xxxxxxxxxxxxxxxx(8-4-4-16),其中每個(gè) x 是 0-9 或 a-f 范圍內(nèi)的一個(gè)十六進(jìn)制的數(shù)字。
而標(biāo)準(zhǔn)的UUID格式為:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx (8-4-4-4-12)
?php
function guid(){
if (function_exists('com_create_guid')){
return com_create_guid();
}else{
mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
$charid = strtoupper(md5(uniqid(rand(), true)));
$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;
}
}
echo guid();
?>
以上所述是小編給大家介紹的php中生成標(biāo)準(zhǔn)uuid(guid)的方法詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- PHP框架Laravel中使用UUID實(shí)現(xiàn)數(shù)據(jù)分表操作示例
- PHP中生成UUID自定義函數(shù)分享
- Mysql中存儲UUID去除橫線的方法
- Shell腳本實(shí)現(xiàn)隨機(jī)數(shù)多種方法介紹(date、random、uuid)
- master and slave have equal MySQL server UUIDs 解決方法
- spring boot整合mybatis利用Mysql實(shí)現(xiàn)主鍵UUID的方法
- 用JS生成UUID的方法實(shí)例
- Javascript生成全局唯一標(biāo)識符(GUID,UUID)的方法
- java實(shí)現(xiàn)隨機(jī)生成UUID