PHP利用 GUID生成函数和类的解决办法
内容摘要
这篇文章主要为大家详细介绍了PHP利用 GUID生成函数和类的简单示例,具有一定的参考价值,可以用来参考一下。
文章正文
这篇文章主要为大家详细介绍了PHP利用 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生成函数
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <code> 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 ; } </code> |
三、GUID生成类
PHP获得GUID类:guid_class.php代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | <code><?php /* php教程 www.512Pic.com */ 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); } } </code> |
GUID类使用方法:
代码如下:
1 2 3 | <code> require_once ( "guid.class.php" ); $Guid = new Guid(); print $Guid ->toString();</code> |
注:关于PHP利用 GUID生成函数和类的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释