php GUID生成函数和类
发布时间:2020-12-12 20:05:54 所属栏目:PHP教程 来源:网络整理
导读:一、GUID简介 GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络
一、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,8).$hyphen .substr($charid,8,4).$hyphen .substr($charid,12,16,20,12) .chr(125);// "}" return $uuid; } 三、GUID生成类PHP获得GUID类:guid_class.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(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,8).'-'.substr($raw,4).'-'.substr($raw,20); } } GUID类使用方法: 代码如下: require_once("guid.class.php"); $Guid = new Guid(); print $Guid->toString(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |