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 相关文章推荐
再次研究下cache_lite
Feb 14 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
Nov 12 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
Feb 18 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
PHP读取大文件末尾N行的高效方法推荐
Jun 03 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
Jun 17 PHP
laravel框架上传图片实现实时预览功能
Oct 14 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 PHP
php远程请求CURL案例(爬虫、保存登录状态)
Apr 01 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
论建造顺序的重要性
2020/03/04 星际争霸
php反弹shell实现代码
2009/04/22 PHP
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
基于php实现长连接的方法与注意事项的问题
2013/05/10 PHP
ThinkPHP多表联合查询的常用方法
2020/03/24 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
javascript appendChild,innerHTML,join性能比较代码
2009/08/29 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
three.js加载obj模型的实例代码
2017/11/10 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
解决vue项目router切换太慢问题
2020/07/19 Javascript
python实现多线程采集的2个代码例子
2014/07/07 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
Pyqt5自适应布局实例
2019/12/13 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
硕士研究生求职自荐信范文
2014/03/11 职场文书
差生评语大全
2014/05/04 职场文书
四风问题查摆材料
2014/08/25 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
Mysql中mvcc各场景理解应用
2022/08/05 MySQL