当前位置: 首页 > 编程笔记 >

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

管和志
2023-03-14
本文向大家介绍详解php中生成标准uuid(guid)的方法,包括了详解php中生成标准uuid(guid)的方法的使用技巧和注意事项,需要的朋友参考一下

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生成PDF方法详解,包括了使用PHP生成PDF方法详解的使用技巧和注意事项,需要的朋友参考一下 利用PHP编码生成PDF文件是一个非常耗时的工作。在早期,开发者使用PHP并借助FPDF来生成PDF文件。但是如今,已经有很多函数库可以使用了,并且能够从你提供的HTML文件生成PDF文档。这让原先耗时的工作变得非常简单了。 FPDF FPDF是一个允许使用纯PHP生成PDF文档

  • 问题内容: 因此,我一直在做一些挖掘工作,并试图拼凑一个在PHP中生成有效v4 UUID的函数。这是我能找到的最接近的。我对十六进制,十进制,二进制,PHP的按位运算符之类的知识几乎不存在。该功能会生成一个有效的v4 UUID,直到一个区域。v4 UUID的形式应为: xxxxxxxx-xxxx- 4 xxx- y xxx-xxxxxxxxxxxx 其中 y 是8、9,A或B。这是函数失败的原因,

  • 问题内容: 这是将UUID()生成的MySQL GUID / UUID转换为二进制文件(16)的最佳方法: 然后将其存储在BINARY(16)中 我应该知道以这种方式进行操作有什么影响? 问题答案: 含义不多。它会稍微减慢查询速度,但是您几乎不会注意到它。 无论如何都存储为内部。 如果要将二进制文件加载到客户端中并在客户端进行解析,请注意,它可能具有除initial之外的其他字符串表示形式。 的函

  • 问题内容: 我有一个表字段类型varchar(36),我想由mysql动态生成它,所以我使用了以下代码: 插入记录后如何立即检索生成的uuid? 问题答案: 更好 你不能。唯一的解决方案是执行2个独立的查询: 其中$ uuid是第一步中获取的值。

  • 我正在将C#脚本移植到Spark(Scala)中,我遇到了Scala中UUID生成与C#中GUID生成的问题。 有没有办法在 Java 中生成与 C# 中生成的 UUID 相同的 UUID? 我通过从字符串的MD5散列创建Guid来生成数据库的主键。最后,我希望在Java/Scala中生成与C#脚本中的UUIDs相匹配的UUIDs,这样数据库中使用C#实现进行散列的现有数据就不需要重新散列。 C#

  • 问题内容: 我正在开发一个Web服务,它需要传递一个新值作为对该服务内方法的引用。 我不熟悉或,但是需要类似的东西(因此创建一个新对象,据我了解返回)。 有任何想法吗? 问题答案: 您可以尝试以下方法: 资源 -