一、什么是UUID
简单的说UUID就是一串全球唯一的(16进制)数字串。
UUID的全拼为“Universally Unique Identifier”,可以译为“通用唯一识别码”。UUID由开源软件基金会 (Open Software Foundation, OSF) 定义,是分布式计算环境 (Distributed Computing Environment, DCE) 的一个组成部分。
UUID的标准格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx”,五个部分分别为8个字符、4个字符、4个字符、4个字符、12个字符,中间用“-”号间隔。常见的GUID(Globally Unique Identifier)是微软对UUID标准的一种实现。
PHP 产生UUID 有两种方式:
1 采用代码方式:
/*生成唯一标志*标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx(8-4-4-4-12)*/function uuid()
{
$chars = md5(uniqid(mt_rand(), true));
$uuid = substr ( $chars, 0, 8 ) . '-'
. substr ( $chars, 8, 4 ) . '-'
. substr ( $chars, 12, 4 ) . '-'
. substr ( $chars, 16, 4 ) . '-'
. substr ( $chars, 20, 12 );
return $uuid ;
}
echo uuid(); //Returns like 'dba5ce3e-430f-cf1f-8443-9b337cb5f7db'
2采用扩展uuid
wget http://pecl.php.net/get/uuid-1.0.3.tgz
tar zxvf uuid-1.0.3.tgz
cd uuid-1.0.3
phpize
./configure
make
make install
好了,然后编辑一下PHP配置文件,重启一下服务器,到phpinfo()去看效果吧:
安装成功之后,写两行代码测试一下吧:
<?php
//uuid.php
echo uuid_create(), "<br />\n";
echo uuid_create(1); //建议用法
刷新几次页面,观察一下两行UUID的变化,有什么发现吗?想进一步了解的话,请学习一下UUID的几个版本是如何定义的吧。
安装扩展可能遇到的问题
安装扩展遇到问题一般都是系统缺少相关组件造成的。
在centos 7中,需要先安装libuuid-devel,这个用yum命令就可以了。
在mac os 10.9中则需要先安装libuuid,这个要到libuuid | SourceForge.net下载。