PHP中生成UUID自定义函数分享

 更新时间:2015年06月10日 09:20:34   投稿:junjie  
这篇文章主要介绍了PHP中生成UUID自定义函数分享,本文提供的代码可以生成一个 UUID version 4,,需要的朋友可以参考下

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() 即可。

相关文章

  • 解决nginx不支持thinkphp中pathinfo的问题

    解决nginx不支持thinkphp中pathinfo的问题

    这篇文章主要介绍如何解决当Nginx不支持pathinfo问题时该如何解决,需要的朋友可以参考下
    2015-07-07
  • PHP使用Redis长连接的方法详解

    PHP使用Redis长连接的方法详解

    这篇文章主要介绍了PHP使用Redis长连接的方法,结合实例形式详细分析php操作redis长连接的使用方法及相关注意事项,需要的朋友可以参考下
    2018-02-02
  • PHP STRING 陷阱原理说明

    PHP STRING 陷阱原理说明

    需要注意的时候,我们访问数组的时候 都是使用方括号“[]”,string作为一个也可以使用操作符“[]”进行访问。但是,需要注意的一点就是,访问字符串时候,操作符“[]”中的内容会被转化为int类型的。
    2010-07-07
  • PHPer 需要了解的 5 个 Composer 小技巧

    PHPer 需要了解的 5 个 Composer 小技巧

    本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便。
    2014-08-08
  • thinkphp中多表查询中防止数据重复的sql语句(必看)

    thinkphp中多表查询中防止数据重复的sql语句(必看)

    下面小编就为大家带来一篇thinkphp中多表查询中防止数据重复的sql语句(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • PHP命名空间定义与用法实例分析

    PHP命名空间定义与用法实例分析

    这篇文章主要介绍了PHP命名空间定义与用法,结合实例形式分析了php命名空间的原理、定义、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-08-08
  • PHP中extract()函数的妙用分析

    PHP中extract()函数的妙用分析

    近日在看一个牛人的代码时,看到一个非常好用的函数:extract(),它的主要作用是将数组展开,键名作为变量名,元素值为变量值,可以说为数组的操作提供了另外一个方便的工具
    2012-07-07
  • PHP sprintf()函数用例解析

    PHP sprintf()函数用例解析

    sprintf() 函数把格式化的字符串写写入一个变量中。
    2011-05-05
  • PHP开发的微信现金红包功能示例

    PHP开发的微信现金红包功能示例

    这篇文章主要介绍了PHP开发的微信现金红包功能,结合实例形式较为详细的分析了php使用微信接口实现现金红包功能的相关步骤与操作技巧,需要的朋友可以参考下
    2017-06-06
  • PHP程序员必须知道的两种日志实例分析

    PHP程序员必须知道的两种日志实例分析

    这篇文章主要介绍了PHP程序员必须知道的两种日志,结合实例形式分析了php-fpm 慢日志及php-error 错误日志相关原理与使用技巧,需要的朋友可以参考下
    2020-05-05

最新评论