国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php GUID生成函數和類

2024-05-04 23:21:59
字體:
來源:轉載
供稿:網友

一、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的優點
1.GUID在空間上和時間上具有唯一性,保證同一時間不同地方產生的數字不同。
2.世界上的任何兩臺計算機都不會生成重復的 GUID 值。
3.需要GUID的時候,可以完全由算法自動生成,不需要一個權威機構來管理。
4.GUID的長度固定,并且相對而言較短小,非常適合于排序、標識和存儲。
三、GUID生成函數

復制代碼 代碼如下:


function create_guid() {
    $charid = strtoupper(md5(uniqid(mt_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;
}


三、GUID生成類
PHP獲得GUID類:guid_class.php

復制代碼 代碼如下:


<?php   
class System   
{   
    function currentTimeMillis()   
    {   
        list($usec, $sec) = explode(" ",microtime());   
        return $sec.substr($usec, 2, 3);   
    }   
}   
class NetAddress   
{   
    var $Name = 'localhost';   
    var $IP = '127.0.0.1';   
    function getLocalHost() // static   
    {   
        $address = new NetAddress();   
        $address->Name = $_ENV["COMPUTERNAME"];   
        $address->IP = $_SERVER["SERVER_ADDR"];   
        return $address;   
    }   
    function toString()   
    {   
        return strtolower($this->Name.'http://m.survivalescaperooms.com/'.$this->IP);   
    }   
}   
class Random   
{   
    function nextLong()   
    {   
        $tmp = rand(0,1)?'-':'';   
        return $tmp.rand(1000, 9999).rand(1000, 9999).rand(1000, 9999).rand(100, 999).rand(100, 999);   
    }   
}   
// 三段   
// 一段是微秒 一段是地址 一段是隨機數   
class Guid   
{   
    var $valueBeforeMD5;   
    var $valueAfterMD5;   
    function Guid()   
    {   
        $this->getGuid();   
    }   
    //   
    function getGuid()   
    {   
        $address = NetAddress::getLocalHost();   
        $this->valueBeforeMD5 = $address->toString().':'.System::currentTimeMillis().':'.Random::nextLong();   
        $this->valueAfterMD5 = md5($this->valueBeforeMD5);   
    }   
    function newGuid()   
    {   
        $Guid = new Guid();   
        return $Guid;   
    }   
    function toString()   
    {   
        $raw = strtoupper($this->valueAfterMD5);   
        return substr($raw,0,8).'-'.substr($raw,8,4).'-'.substr($raw,12,4).'-'.substr($raw,16,4).'-'.substr($raw,20);   
    }   
}

GUID類使用方法:

復制代碼 代碼如下:


require_once("guid.class.php");   
$Guid = new Guid();   
print $Guid->toString();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘德县| 京山县| 禄丰县| 广丰县| 文化| 甘德县| 荔波县| 泾阳县| 东明县| 武冈市| 德兴市| 右玉县| 凌云县| 彩票| 广东省| 措美县| 津南区| 海原县| 精河县| 晋州市| 潼关县| 鄂托克旗| 东乌珠穆沁旗| 邳州市| 青海省| 福安市| 改则县| 吉安市| 大竹县| 凤阳县| 文昌市| 柳州市| 昆明市| 汉源县| 巴青县| 鹿邑县| 崇文区| 隆安县| 唐山市| 红安县| 澄城县|