详解php中生成标准uuid(guid)的方法


Posted in PHP onApril 28, 2019

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。

通常平台 会提供生成UUID的API。UUID按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。

由以 下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相 同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。

关于 UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。

在ColdFusion中可以用CreateUUID()函数很简单的生成UUID,其格式为:xxxxxxxx-xxxx-xxxx- xxxxxxxxxxxxxxxx(8-4-4-16),其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。

而标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx (8-4-4-4-12)

<?php



function guid(){
 if (function_exists('com_create_guid')){
  return com_create_guid();
 }else{
  mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
  $charid = strtoupper(md5(uniqid(rand(), true)));
  $hyphen = chr(45);// "-"
  $uuid = chr(123)// "{"
    .substr($charid, 0, 8).$hyphen
    .substr($charid, 8, 4).$hyphen
    .substr($charid,12, 4).$hyphen
    .substr($charid,16, 4).$hyphen
    .substr($charid,20,12)
    .chr(125);// "}"
  return $uuid;
 }
}
echo guid();
?>

以上所述是小编给大家介绍的php中生成标准uuid(guid)的方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP.MVC的模板标签系统(一)
Sep 05 PHP
PHP文件下载类
Dec 06 PHP
在数据量大(超过10万)的情况下
Jan 15 PHP
PHP Document 代码注释规范
Apr 13 PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 PHP
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
May 24 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
Nov 12 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
php打包网站并在线压缩为zip
Feb 13 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
Aug 07 PHP
PHP写API输出的时用echo的原因详解
Apr 28 #PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 #PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 #PHP
PHP操作路由器实现方法示例
Apr 27 #PHP
PHP切割汉字的常用方法实例总结
Apr 27 #PHP
YII框架常用技巧总结
Apr 27 #PHP
YII框架行为behaviors用法示例
Apr 26 #PHP
You might like
用php+mysql一个名片库程序
2006/10/09 PHP
PHP音乐采集(部分代码)
2007/02/14 PHP
PHP define函数的使用说明
2008/08/27 PHP
PHP 数组遍历顺序理解
2009/09/09 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
再论Javascript的类继承
2011/03/05 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
python3音乐播放器简单实现代码
2020/04/20 Python
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
python中eval与int的区别浅析
2019/08/11 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
详解Python实现进度条的4种方式
2020/01/15 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
怎样客观的做好自我评价
2013/12/28 职场文书
党员公开承诺事项
2014/03/25 职场文书
会计专业求职信
2014/08/10 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
学雷锋日活动总结
2015/02/06 职场文书
学校教师培训工作总结
2015/10/14 职场文书
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS
Java存储没有重复元素的数组
2022/04/29 Java/Android