一个生成GUID的类~~~~~~~~~~~~

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

www.phpclasses.org下到的,希望对大家有帮助

guid -- 全局唯一标识符

型如 54BB7788-0008-7789-ABAB-112233445566 这个样子的英文与数字的组合

Guid Class

License: GPL

Sample:

$Guid = new Guid();

print $Guid->toString();

Binzy Wu

binzywu@gmail.com

iZz Soft

2004-07-08 20:26:16 Shanghai

-----------------------------------------------

下面是类的内容

<?

/* $Id: Guid.php,v 1.0 2004/07/08 05:50:17 binzy Exp $ */

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);

}

}

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航