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简单系统查询模块代码打包下载
Jun 07 PHP
PHP cron中的批处理
Sep 16 PHP
phpMyadmin 用户权限中英对照
Apr 02 PHP
php分页思路以及在ZF中的使用
May 30 PHP
浅析php数据类型转换
Jan 09 PHP
php通过session防url攻击方法
Dec 10 PHP
php实现统计目录文件大小的函数
Dec 25 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
php输出图像的方法实例分析
Feb 16 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 12 PHP
解决laravel 表单提交-POST 异常的问题
Oct 15 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
模拟xcopy的函数
2006/10/09 PHP
PHP中Date获取时间不正确怎么办
2008/06/05 PHP
解析php扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
PHP中SESSION的注销与清除
2015/04/16 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
python通过函数属性实现全局变量的方法
2015/05/16 Python
Python smallseg分词用法实例分析
2015/05/28 Python
win与linux系统中python requests 安装
2016/12/04 Python
Linux下python制作名片示例
2018/07/20 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
英语专业毕业个人求职自荐信
2013/09/21 职场文书
商铺租赁意向书
2014/04/01 职场文书
募捐倡议书
2014/04/14 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
学年个人总结范文
2015/03/05 职场文书
React列表栏及购物车组件使用详解
2021/06/28 Javascript
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang