源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

php GUID生成函数和类

  • 时间:2020-06-21 07:37 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php GUID生成函数和类
[b]一、GUID简介[/b] 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 值。 [b]二、GUID的优点[/b] 1.GUID在空间上和时间上具有唯一性,保证同一时间不同地方产生的数字不同。 2.世界上的任何两台计算机都不会生成重复的 GUID 值。 3.需要GUID的时候,可以完全由算法自动生成,不需要一个权威机构来管理。 4.GUID的长度固定,并且相对而言较短小,非常适合于排序、标识和存储。 [b]三、GUID生成函数[/b]
[u]复制代码[/u] 代码如下:
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; }
[b]三、GUID生成类 [/b]PHP获得GUID类:guid_class.php
[u]复制代码[/u] 代码如下:
<?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);        }    }
GUID类使用方法:
[u]复制代码[/u] 代码如下:
require_once("guid.class.php");    $Guid = new Guid();    print $Guid->toString();
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部