php中生成标准uuid(guid)的方法
<?php
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)
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();
?>
转载于:https://www.cnblogs.com/huidaoli/p/3964508.html
php中生成标准uuid(guid)的方法相关推荐
- java 8位随机数_JAVA中生成指定位数随机数的方法总结
JAVA中生成指定位数随机数的方法很多,下面列举几种比较常用的方法. 方法一.通过Math类 1 public static String getRandom1(intlen) {2 int rs = ...
- 用python生成九九乘法表的指令_Python中生成九九乘法表的方法有哪几种?
九九乘法表是我们计算的基础,在Python中可以生成九九乘法表.大致有三种方法:列表推导式法.for循环法.while嵌套循环法.具体使用代码请看本文. 方法一.列表推导式法for i in rang ...
- iOS 中生成随机数的4种方法(rand、random、arc4random、arc4random_uniform)
iOS 有如下四种随机数方法,下面以产生 [0,100) 的随机数为例: 1. srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % ...
- 数据去重方法python_Python统计文件中去重后uuid个数的方法
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- .NET中生成动态验证码
NET中生成动态验证码 验证码是图片上写上几个字,然后对这几个字做特殊处理,如扭曲.旋转.修改文字位置,然后加入一些线条,或加入一些特殊效果,使这些在人类能正常识别的同时,机器却很难识别出来,以达到防 ...
- excel批量更改超链接_excel超链接应用:快速生成目录的几个方法-上
编按:哈喽,大家好!在平时工作中,为了能快速打开需要的工作表,我们通常会设置一个目录.目录的设置方法有很多种,但大多数人使用的方法还是基本的手动插入超链接的操作.虽然这个方法也行,但是将大大降低你的工 ...
- excel:超链接应用,快速生成目录的几个方法
****部落窝教育-excel目录制作技巧**** 原创:壹仟伍佰万/部落窝教育(未经同意,请勿转载) 更多教程:部落窝教育(http://www.itblw.com) 微信公众号:exceljiao ...
- excel超链接应用:快速生成目录的几个方法-上
在平时工作中,为了能快速打开需要的工作表,我们通常会设置一个目录.目录的设置方法有很多种,但大多数人使用的方法还是基本的手动插入超链接的操作.虽然这个方法也行,但是将大大降低你的工作效率,那么今天,我 ...
- CVPR2023 I 一种全新的单个宽基线立体图像对中学习渲染新视角的方法
推荐大家关注3DCV,一个关注3D技术,更关注3D产业的公众号.点击下方卡片,关注3DCV公众号: 本文作者:3DCV@小张Tt | 来源:3DCV 论文题目:Learning to Render N ...
最新文章
- jenkins-svn配置
- linux系统打包工具,Linux 压缩、解压缩和打包工具
- nodejs模块加载分析(1).md
- (转)C# Delegate.Invoke、Delegate.BeginInvoke
- [Step By Step]SAP Visual Intelligence数据操作、地图信息显示(SAP HANA中提取数据)
- 手算KMP匹配的Next值和Nextval值(转载)
- Django创建项目后,项目文件夹下的组成部分
- android webview onconsolemessage,Android WebView一些特殊的使用
- Java FileInputStream finalize()方法与示例
- 【连载】Django入门到实战(一)
- javascript sort排序
- 如何用方正飞腾做出“凹”形文本框
- jStat:轻量级Javascript统计库
- java第一个helloworld_Java第一个程序--HelloWorld
- 项目管理文档目录结构
- arduino烧录_用Arduino UNO烧录Attiny85芯片
- 6个有效激励合作伙伴和促进推荐的小技巧
- 如何实现在直播中播放音频文件
- “茶界茅台”竹叶青的数字化营销玩法 | 案例
- Mac安装brew,国内推荐使用
热门文章
- 【Qt】Qt数据库驱动层
- kotlin sealed 中_Kotlin sealed class
- json schema如何约束为小数_如何使用jsonschema进行接口响应断言
- Linux下串口编程基础
- 51nod 1270 数组的最大代价 思路:简单动态规划
- wchar_t*和string相互转换
- ARM中LDR伪指令与LDR加载指令
- [转] ROS-I simple_message 源码分析:MessageManager
- IDEA配置git环境
- [攻防世界 pwn]——string(内涵peak小知识)