php生成全球唯一标识符guid的算法示例
发布时间:2016-09-13 编辑:jiaochengji.com
本文介绍下,php生成全球唯一标识符guid的例子,有需要的朋友参考下。
1,创建php类库文件-guid.php
<?php // guid.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 getHost($coumputer_name, $ip) { // static $address = new NetAddress(); $address->name = $coumputer_name; $address->ip = $ip; 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($computer_name, $ip){ $this->getGuid($computer_name, $ip); } //by www.jbxue.com function getGuid($coumputer_name, $ip){ $address = NetAddress::getHost($coumputer_name, $ip); $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); } } ?>
2,调用示例,生成唯一的Gid:
<?php require_once('guid.php'); //调用类库文件 $computer_name = $_SERVER["SERVER_NAME"]; $ip = $_SERVER["SERVER_ADDR"]; $guid = new Guid($computer_name, $ip); print $guid->toString(); //输出结果:3238D32E-807C-B1C4-01C4-FD1346D32110 ?>
您可能感兴趣的文章:
php生成全球唯一标识符guid的算法示例
php生成唯一标识符的代码
php生成GUID(全球唯一标识符)方法解析
php guid生成函数 php生成唯一标识符
asp/php下生成GUID
在ASP.NET中创建GUIDa
Mysql UUID的相关知识
PHP生成不重复标识符程序代码
PHP生成唯一标识符的示例代码
C#随机数的三种生成方法
[关闭]