【问题标题】:How do I use uniqid to generate a 6 chars length ID?如何使用 uniqid 生成 6 个字符长度的 ID?
【发布时间】:2012-05-11 03:54:39
【问题描述】:

我的网站有一个部分可以为每个帖子生成一个唯一的 ID,然后将其发送到数据库。问题是生成的 ID 总共有 16 个字符,我只需要 6 个字符。

这是用于生成 ID 的代码:

$order_id  = uniqid(rand(10,1000), false);

有什么方法可以完成这样的改变吗?

【问题讨论】:

    标签: php random unique


    【解决方案1】:

    为什么不在数据库中使用 auto_incremental 呢?所以第一个 id 是 1,然后是 2,依此类推。如果您只需要 6 位数字,这将产生 999 999 个不同的键。


    这里之前接受的答案,使用substr()uniqid() 中获取前 6 个字符,并不是 100% 安全的。 uniqid 将产生一个唯一的 id,其中整个 id 都是唯一的。删除这些字符可能会导致重复。

    【讨论】:

      【解决方案2】:

      正如上面的OptimusCrime所说,您可以在数据库中使用auto_increment,以及PHP函数str_pad。例如:

      <?php
      
      $input = 5;
      echo str_pad($input, 6, "0", STR_PAD_LEFT);
      

      上面的代码会生成 6 位字符串,所以你可以使用函数来获取任何你想要的字符串:

      000005
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-04
        • 2020-05-03
        • 1970-01-01
        • 2019-04-20
        • 2012-03-02
        • 1970-01-01
        相关资源
        最近更新 更多