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中对数据库操作的封装
Oct 09 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
php debug 安装技巧
Apr 30 PHP
Admin generator, filters and I18n
Oct 06 PHP
php _autoload自动加载类与机制分析
Feb 10 PHP
php开发文档 会员收费1期
Aug 14 PHP
PHP Global定义全局变量使用说明
Aug 15 PHP
thinkphp实现图片上传功能
Jan 13 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
Nov 19 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 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
第八节 访问方式 [8]
2006/10/09 PHP
用PHP实现小型站点广告管理(修正版)
2006/10/09 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
基于php判断客户端类型
2016/10/14 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
sogou地图API用法实例教程
2014/09/11 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
Python日志模块logging简介
2015/04/13 Python
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
简单实现python爬虫功能
2015/12/31 Python
python二分查找算法的递归实现方法
2016/05/12 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
Python 批量合并多个txt文件的实例讲解
2018/05/08 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
使用 CSS3 中@media 实现网页自适应的示例代码
2020/03/24 HTML / CSS
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
自动化专业毕业生自荐信
2013/11/01 职场文书
大学生个人求职口试自我评价
2014/02/16 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
党员创先争优心得体会
2014/09/11 职场文书
2015年司机工作总结
2015/04/23 职场文书
2015年派出所工作总结
2015/04/24 职场文书
环保建议书作文300字
2015/09/14 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书