直接上代码:

function generate_global_uniqid()
{
$prefix = md5(microtime(true)); // 生成唯一ID发生器 prefix,如果为服务集群需要生成唯一ID,该值可以设置为机器编号,这里采用了时间作为前缀
$id = uniqid($prefix, true); // 生成唯一ID, 具体可以参考:http://php.net/manual/en/function.uniqid.php,参数 true 可以提高唯一的概率(注意这里并不能完全保证生成id的唯一性,但是测试结果显示,重复的概率非常低)
return md5($id);
}

注意,这里并不能百分百保证 id 的唯一性,不过测试发现得到唯一id的概率非常高,测试代码如下,大家使用前可以自行测试:

<?php

$units = array();
for ($i = 0; $i < 1000000; $i++) // 100万次循环
{
$units[] = md5(uniqid(md5(microtime(true)), true));
}
$values = array_count_values($units);$duplicates = []; // 重复的id
foreach ($values as $k => $v)
{
if ($v > 1)
{
$duplicates[$k] = $v;
}
}
var_dump($duplicates);

最新文章

  1. jQuery实现折叠下拉效果
  2. Django CRM __contains与__icontains区别
  3. Android EditText载入HTML内容(内容包括网络图片)
  4. Servlet的接口实现类
  5. Markdown 代码测试!
  6. dede后台登陆后一片空白的解决办法汇总
  7. linux 环境下安装oracle11g方法及安装过程中遇上的问题解决方法
  8. Android的几种Manager
  9. SNF开发平台WinForm-Grid表格控件大全
  10. mysql之 slow log 慢查询日志
  11. 2018.10.27 codeforces402D. Upgrading Array(数论+贪心)
  12. sessionStorage 、localStorage、cookie
  13. Spring-全局异常拦截
  14. LinkedHashMap源码剖析
  15. new/malloc的差别
  16. oracle 多字段去重查询
  17. Redis分布式队列解决文件并发的问题
  18. 23 DesignPatterns学习笔记:C++语言实现 --- 1.3 Singletion
  19. Toxiproxy 网络情况模式代理
  20. MacBook常用快捷键

热门文章

  1. mybatis学习之入门实例
  2. Java 带缓冲的字节流和字符流
  3. 在linux命令行利用SecureCRT上传下载文件
  4. 4、springboot之全局异常捕获
  5. Linux 创建python虚拟环境
  6. COGS2259 异化多肽
  7. vue-router 的使用
  8. Windows 64位下安装Redis教程
  9. C++教程|菜鸟教程
  10. Android MediaRecorder实现暂停断点录音功能