【问题标题】:What is the best way to generate a non-duplicate uuid (v4) in PHP在 PHP 中生成非重复 uuid (v4) 的最佳方法是什么
【发布时间】:2015-11-14 14:59:35
【问题描述】:

我正在使用以下函数,它使用mt_rand,但我相信它可能会生成一个副本。有没有更好的方法来做到这一点?

 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));

【问题讨论】:

  • 那个问题没有回答我的问题。我正在专门寻找有关创建非重复项的建议。它不必是随机的,只要是唯一的。
  • 我知道你来自哪里,问题是“苗条”=“可能”,即使它非常不可能。我想我可能只需要通过数据库执行重复检查。
  • 您的代码不会生成 UUID4 - 它在所需位置没有 4。如果你想要一个非重复的,你可以在每次函数调用时自动增加它吗?

标签: php guid uuid


【解决方案1】:

如果你想在 PHP 中创建真正的 UUID v4,那么最好的办法是使用这个包 - https://github.com/ramsey/uuid - 它已经过全面测试并被许多其他包使用。

【讨论】:

    猜你喜欢
    • 2010-10-12
    • 2013-01-20
    • 2011-01-03
    • 1970-01-01
    • 2012-01-31
    • 2010-09-30
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多