PHP下產生GUID(已測)

來源:互聯網
上載者:User

 

guid.class.php 檔案

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.'/'.$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);   

    }   
}   
?> 

使用PHP代碼

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.