PHP中生成UUID自定义函数分享


Posted in PHP onJune 10, 2015

UUID 全称是 Universally unique identifier,它是一种识别符,使用任意的计算机都可以生成,不需要一个中央数据库进行管理,即可以保证几乎没有重复的几率。而 UUID 的值域之大,据说给世界上每一粒沙子分配一个 UUID,也不会有重复的。

最近在改 WordPress 的代码,需要用到 UUID。但是,PHP 中居然没有生成 UUID 的函数,只好自己写一个。

if (!function_exists('com_create_guid')) {
 function com_create_guid() {
  return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
    mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
    mt_rand( 0, 0xffff ),
    mt_rand( 0, 0x0fff ) | 0x4000,
    mt_rand( 0, 0x3fff ) | 0x8000,
    mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
  );
 }
}

上述代码可以生成一个 UUID version 4。UUID 目前有 5 个版本,其中第四版是完全随机的,生成起来比较容易。而其中的 com_create_guid,是 Windows 中 PHP 的一个函数,它直接调用 COM 的 CreateGuid 函数来生成 UUID,但是在 Linux 没有对应的函数库,只好自己写了。为了方便在不同的平台上使用,就创建了一个同名的函数。其它的代码就是生成随机数了。

至于用法,就直接调用 com_create_guid() 即可。

PHP 相关文章推荐
php5.2时间相差8小时
Jan 15 PHP
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
PHP Switch 语句之学习笔记
Sep 21 PHP
getJSON跨域SyntaxError问题分析
Aug 07 PHP
ThinkPHP分页实例
Oct 15 PHP
php+mysqli使用面向对象方式更新数据库实例
Jan 29 PHP
php实现转换ubb代码的方法
Jun 18 PHP
php+ajax实现无刷新的新闻留言系统
Dec 21 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
PHP使用ActiveMQ实例
Feb 05 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
php实现大文件断点续传下载实例代码
Oct 01 PHP
php使用for语句输出三角形的方法
Jun 09 #PHP
php生成图片验证码
Jun 09 #PHP
php判断用户是否手机访问代码
Jun 08 #PHP
浅谈PHP中Stream(流)
Jun 08 #PHP
php实现有趣的人品测试程序实例
Jun 08 #PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 #PHP
php查询whois信息的方法
Jun 08 #PHP
You might like
编写自己的php扩展函数
2006/10/09 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
PHP+jQuery实现自动补全功能源码
2013/05/15 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
JavaScript 基础问答三
2008/12/03 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
js实现导航吸顶效果
2017/02/24 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
[03:46]DAC趣味视频-中文考试.mp4
2017/04/02 DOTA
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
浅谈Python实现2种文件复制的方法
2018/01/19 Python
Python中的引用知识点总结
2019/05/20 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
90后毕业生的求职信范文
2013/09/21 职场文书
董事长职责范文
2013/11/08 职场文书
信息总监管理职责范本
2014/03/08 职场文书
计算机专业自荐信
2014/05/24 职场文书
车间核算员岗位职责
2014/07/01 职场文书
药店收银员岗位职责
2015/04/07 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
解决Go gorm踩过的坑
2021/04/30 Golang