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 相关文章推荐
php的一个登录的类 [推荐]
Mar 16 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
Sep 05 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
php连接odbc数据源并保存与查询数据的方法
Dec 24 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
详解WordPress中给链接添加查询字符串的方法
Dec 18 PHP
php中使用GD库做验证码
Mar 31 PHP
微信支付开发订单查询实例
Jul 12 PHP
php微信公众平台示例代码分析(二)
Dec 06 PHP
PHP中empty,isset,is_null用法和区别
Feb 19 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
javascript 自动转到命名锚记
2009/01/10 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
对python中的argv和argc使用详解
2018/12/15 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
电子专业自荐信
2014/07/01 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
党校学习个人总结
2015/02/15 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
python中__slots__节约内存的具体做法
2021/07/04 Python
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏