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.ini 中文版
Oct 28 PHP
php中防止SQL注入的最佳解决方法
Apr 25 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
Sep 23 PHP
php简单实现无限分类树形列表的方法
Mar 27 PHP
php生成动态验证码gif图片
Oct 19 PHP
PHP实现GIF图片验证码
Nov 04 PHP
微信支付开发交易通知实例
Jul 12 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
php微信公众号开发之翻页查询
Oct 20 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 PHP
基于PHP实现堆排序原理及实例详解
Jun 19 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
php 删除cookie和浏览器重定向
2009/03/16 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
2009/07/01 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
CI框架中数据库操作函数$this->db->where()相关用法总结
2016/05/17 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
Javascript select下拉框操作常用方法
2009/11/09 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
selenium+python实现自动化登录的方法
2018/09/04 Python
python manage.py runserver流程解析
2019/11/08 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
使用Python实现批量ping操作方法
2020/05/06 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
政法大学毕业生自荐信范文
2014/01/01 职场文书
宿舍违规检讨书
2014/01/12 职场文书
语文教学随笔感言
2014/02/18 职场文书
教师师德承诺书
2014/03/26 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
中学生演讲稿
2014/04/26 职场文书
关于诚信的活动方案
2014/08/18 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python