如何在没有字符的情况下生成最多9位的uniqId

时间:2015-05-07 07:47:47

标签: php random timestamp

我想根据时间戳生成一个唯一的号码 每个请求必须具有与二十四小时内所有其他请求不同的唯一编号。

任何想法如何生成它可以说最多9个数字?

2 个答案:

答案 0 :(得分:1)

有两种全球类型的解决方案:

  1. 将所有唯一ID存储在一个位置,然后生成/递增它们。最佳示例:将请求存储在(MySQL)数据库中,其中索引是自动增量。

  2. 另一种解决方案是尝试根据microtime计算唯一ID。作为此选项的示例,我们可以直接使用:

    filter_var($_SERVER['REQUEST_TIME_FLOAT'], FILTER_SANITIZE_NUMBER_INT);
    

    将返回字符串中的9-13个字符,或者我们可以使用PHP uniqeid function获取唯一字符串:

    $my_id = uniqid();
    
      

    根据当前时间获取带前缀的唯一标识符   微秒。

    由于它基于microtime,因此返回值的长度为13个字符。

    如果你想要它更独特,你也可以这样使用前缀:

    $my_id = uniqid( $_SERVER['REMOTE_ADDR'] );
    

    但是返回值会更长。

答案 1 :(得分:-1)

你可以使用

echo rand(1,999999999);die;

但唯一编号的9位数字是不够的,这取决于您想要生成的唯一键的数量