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 相关文章推荐
使用Linux五年积累的一些经验技巧
Jun 20 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
浅谈使用PHP开发微信支付的流程
Oct 04 PHP
Yii中实现处理前后台登录的新方法
Dec 28 PHP
PHP和MySql中32位和64位的整形范围是多少
Feb 18 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
Laravel框架实现redis集群的方法分析
Sep 14 PHP
PHP文件操作实例总结【文件上传、下载、分页】
Dec 08 PHP
PHP类的自动加载机制实现方法分析
Jan 10 PHP
thinkphp5框架API token身份验证功能示例
May 21 PHP
Laravel 验证码认证学习记录小结
Dec 20 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 JSON 数据解析代码
2010/05/26 PHP
PHP学习笔记之二 php入门知识
2011/01/12 PHP
十幅图告诉你什么是PHP引用
2015/02/22 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
Python中处理时间的几种方法小结
2015/04/09 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
Python实现的选择排序算法示例
2017/11/29 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
animation和transition的区别
2020/10/12 HTML / CSS
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
精彩的推荐信范文
2013/11/26 职场文书
全民健身日活动方案
2014/01/29 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
实习单位鉴定评语
2014/04/26 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
小学音乐教师个人工作总结
2015/02/05 职场文书
退休教师追悼词
2015/06/23 职场文书
女儿满月酒致辞
2015/07/29 职场文书
爱国教育主题班会
2015/08/14 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
python实现剪贴板的操作
2021/07/01 Python