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图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
May 25 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
Aug 02 PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
php无限级分类实现方法分析
Oct 19 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
在TP5数据库中四个字段实现无限分类的示例
Oct 18 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
解析csv数据导入mysql的方法
2013/07/01 PHP
Laravel中注册Facades的步骤详解
2016/03/16 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
python3编写C/S网络程序实例教程
2014/08/25 Python
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
python编写爬虫小程序
2015/05/14 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
Python算法中的时间复杂度问题
2019/11/19 Python
使用python绘制二维图形示例
2019/11/22 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
什么是唯一索引
2015/07/05 面试题
学前班教师的自我鉴定
2013/12/05 职场文书
秋季婚礼证婚词
2014/01/11 职场文书
物业消防安全责任书
2014/07/23 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
挂职学习心得体会
2014/09/09 职场文书
募捐感谢信
2015/01/22 职场文书
三潭印月的导游词
2015/02/12 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis