php GUID生成函数和类
2015-01-24信息快讯网
这篇文章主要介绍了使用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();
phpword插件导出word文件时中文乱码问题处理方案
PHP防止表单重复提交的几种常用方法汇总
PHP中单引号与双引号的区别分析
php版本的cron定时任务执行器使用实例
PHP框架Swoole定时器Timer特性分析
php中Session的生成机制、回收机制和存储机制探究
PHP生成数组再传给js的方法
完善CodeIgniter在IDE中代码提示功能的方法
PHP生成指定长度随机数最简洁的方法
PHP实现生成透明背景的PNG缩略图函数分享
PHP生成短网址的3种方法代码实例
php去掉URL网址中带有PHPSESSID的配置方法
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
PHP数字和字符串ID互转函数(类似优酷ID)
PHP获取MySql新增记录ID值的3种方法
ThinkPHP的Widget扩展实例
yii框架builder、update、delete使用方法
PHP包含文件函数include、include_once、require、require_once区别总结
easyui的tabs update正确用法分享
PHP文件大小格式化函数合集
PHP加Nginx实现动态裁剪图片方案
php实现文件下载简单示例(代码实现文件下载)
php实现文件编码批量转换
php导出word文档与excel电子表格的简单示例代码
php 创建以UNIX时间戳命名的文件夹(示例代码)
php 生成自动创建文件夹并上传文件的示例代码
php中require和require_once的区别说明
php生成excel文件的简单方法
php 根据url自动生成缩略图并处理高并发问题
php 生成短网址原理及代码
php使用qr生成二维码的示例分享
php获取淘宝分类id示例
PHP修改session_id示例代码
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
PHP中include与require使用方法区别详解
对淘宝URL中ID提取的PHP代码
PHP实现把数字ID转字母ID
请离开include_once和require_once
php生成局部唯一识别码LUID的代码