您当前的位置: 首页 > 网站编程 > PHP教程 > php GUID生成函数和类

php GUID生成函数和类

作者:不详 来源:网络 发布时间: 2014-08-06 23:24 点击:
这篇文章主要介绍了使用php生成GUID的方法,分别使用了函数和类的方式生成GUID,详细介绍了什么是GUID、GUID的优点等,需要的朋友可以参考下 一、GUID简介 GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是

php GUID生成函数和类

  这篇文章主要介绍了使用php生成GUID的方法,分别使用了函数和类的方式生成GUID,详细介绍了什么是GUID、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, 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.'/'.$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();
分享到:
本文"php GUID生成函数和类"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4