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

