php中生成标准uuid(guid)的方法

UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。

其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。

使用UUID的好处是,能够保证独立性,程序可以在不同的数据库间迁移,效果不受影响。 保证生成的ID不仅是表独立的,而且是库独立的,这点在在切分数据库的时候尤为重要。而缺点,变是~长

CENTOS7 下安装 UUID,需要先安装几个库

yum -y install uuid uuid-devel e2fsprogs-devel libuuid-devel

然后在官网下载 http://pecl.php.net/package/uuid 进行编译安装,我下载的是 uuid-1.0.4.tgz 的

wget -c http://pecl.php.net/get/uuid-1.0.4.tgztar -zxvf uuid-1.0.4.tgzcd uuid-1.0.4# 因为我的PHP 是装在 exec 下,具体看各人自已的环境/opt/php/exec/bin/phpize./configure --with-php-config=/opt/php/exec/bin/php-configmake && make install

装完在 php.ini 里导入 extension=uuid.so

<?php# 调用echo uuid_create(1)

完整实现

function UUID(){ $uuid = ''; if (function_exists('uuid_create') === true){ $uuid = uuid_create(1); }else{ $data = openssl_random_pseudo_bytes(16); $data[6] = chr(ord($data[6]) & 0x0f | 0x40); $data[8] = chr(ord($data[8]) & 0x3f | 0x80); $uuid = vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4)); } return $uuid;}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值