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 strtok()函数的优点分析
Mar 02 PHP
PHP 开发环境配置(Zend Server安装)
Apr 28 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
Feb 05 PHP
php数组中包含中文的排序方法
Jun 03 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
php中的curl_multi系列函数使用例子
Jul 29 PHP
php实现ip白名单黑名单功能
Mar 12 PHP
Smarty中的注释和截断功能介绍
Apr 09 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
Sep 01 PHP
php面向对象程序设计入门教程
Jun 22 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获取表单textarea数据中的换行问题
2010/09/10 PHP
基于php 随机数的深入理解
2013/06/05 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
PHP中each与list用法分析
2016/01/08 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
javascript的函数作用域
2014/11/12 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
Python 爬虫模拟登陆知乎
2016/09/23 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
《生命 生命》教学反思
2014/04/19 职场文书
酒店节能减排方案
2014/05/26 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
培训督导岗位职责
2015/04/10 职场文书
详解Vue的options
2021/05/15 Vue.js
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python