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 相关文章推荐
抓取YAHOO股票报价的类
May 15 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
Jul 16 PHP
9条PHP编程小知识及易犯的小错误
Jan 22 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
Mar 03 PHP
Apache服务器下防止图片盗链的办法
Jul 06 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
Aug 18 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
PHP CURL与java http使用方法详解
Jan 26 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
May 10 PHP
php面试中关于面向对象的相关问题
Feb 13 PHP
PHP命令行与定时任务
Apr 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横向重复区域显示二法
2008/09/25 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
Python3实现连接SQLite数据库的方法
2014/08/23 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
pandas去除重复列的实现方法
2019/01/29 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
使用pandas读取文件的实现
2019/07/31 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
软件缺陷的分类都有哪些
2014/08/22 面试题
暑期实践思想汇报
2014/01/06 职场文书
电教室标语
2014/06/20 职场文书
公司租房协议书
2014/10/14 职场文书
领导班子整改措施
2014/10/24 职场文书
实习介绍信模板
2015/01/30 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
2015年成本会计工作总结
2015/10/14 职场文书