詳解php中生成標(biāo)準(zhǔn)uuid(guid)的方法
UUID是指在一臺(tái)機(jī)器上生成的數(shù)字,它保證對(duì)在同一時(shí)空中的所有機(jī)器都是唯一的。
通常平臺(tái) 會(huì)提供生成UUID的API。UUID按照開(kāi)放軟件基金會(huì)(OSF)制定的標(biāo)準(zhǔn)計(jì)算,用到了以太網(wǎng)卡地址、納秒級(jí)時(shí)間、芯片ID碼和許多可能的數(shù)字。
由以 下幾部分的組合:當(dāng)前日期和時(shí)間(UUID的第一個(gè)部分與時(shí)間有關(guān),如果你在生成一個(gè)UUID之后,過(guò)幾秒又生成一個(gè)UUID,則第一個(gè)部分不同,其余相 同),時(shí)鐘序列,全局唯一的IEEE機(jī)器識(shí)別號(hào)(如果有網(wǎng)卡,從網(wǎng)卡獲得,沒(méi)有網(wǎng)卡以其他方式獲得),UUID的唯一缺陷在于生成的結(jié)果串會(huì)比較長(zhǎng)。
關(guān)于 UUID這個(gè)標(biāo)準(zhǔn)使用最普遍的是微軟的GUID(Globals Unique Identifiers)。
在ColdFusion中可以用CreateUUID()函數(shù)很簡(jiǎn)單的生成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)的方法詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- PHP利用雪花(SnowFlake)算法生成唯一ID
- php生成唯一uid的解決方法詳解
- 高并發(fā)php uniqid不重復(fù)唯一標(biāo)識(shí)符生成方案
- PHP實(shí)現(xiàn)的生成唯一RequestID類(lèi)完整示例
- php根據(jù)數(shù)據(jù)id自動(dòng)生成編號(hào)的實(shí)現(xiàn)方法
- 3種php生成唯一id的方法
- 使用PHP uniqid函數(shù)生成唯一ID
- php中session_id()函數(shù)詳細(xì)介紹,會(huì)話id生成過(guò)程及session id長(zhǎng)度
- php GUID生成函數(shù)和類(lèi)
- php 生成唯一id的幾種解決方法
- php根據(jù)id生成10位不重復(fù)數(shù)字跟字母混合字符串
相關(guān)文章
ThinkPHP的SAE開(kāi)發(fā)相關(guān)注意事項(xiàng)詳解
這篇文章主要介紹了ThinkPHP的SAE開(kāi)發(fā)相關(guān)注意事項(xiàng),結(jié)合實(shí)例形式較為詳細(xì)的分析了thinkPHP針對(duì)SAE開(kāi)發(fā)的相關(guān)數(shù)據(jù)庫(kù)、緩存、文件、圖片、日志等操作注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
PHP使用Redis實(shí)現(xiàn)Session共享的實(shí)現(xiàn)示例
這篇文章主要介紹了PHP使用Redis實(shí)現(xiàn)Session共享的實(shí)現(xiàn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
Laravel5.4框架中視圖共享數(shù)據(jù)的方法詳解
這篇文章主要介紹了Laravel5.4框架中視圖共享數(shù)據(jù)的方法,結(jié)合實(shí)例形式詳細(xì)分析了Laravel框架視圖共享數(shù)據(jù)的原理、步驟與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-09-09
ThinkPHP3.2.3數(shù)據(jù)庫(kù)設(shè)置新特性
前篇文章,我們總結(jié)了下ThinkPHP3.2中所產(chǎn)生的新變化,本文我們來(lái)詳細(xì)看下關(guān)于數(shù)據(jù)庫(kù)這塊有哪些新特性,非常細(xì)致,有需要的小伙伴參考下。2015-03-03
PHP7 安裝event擴(kuò)展的實(shí)現(xiàn)方法
這篇文章主要介紹了PHP7 安裝event擴(kuò)展的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Session的工作機(jī)制詳解和安全性問(wèn)題(PHP實(shí)例講解)
有一點(diǎn)我們必須承認(rèn),大多數(shù)web應(yīng)用程序都離不開(kāi)session的使用。這篇文章將會(huì)結(jié)合php以及http協(xié)議來(lái)分析如何建立一個(gè)安全的會(huì)話管理機(jī)制2014-04-04
PHP文件上傳小程序 適合初學(xué)者學(xué)習(xí)!
這篇文章主要為大家詳細(xì)介紹了PHP文件上傳小程序,給初學(xué)者提供的PHP文件上傳小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05

