php随机x位数

新手上路,请多包涵

我需要创建一个具有 x 位数的随机数。

所以假设 x 是 5,我需要一个数字,例如。 35562 如果 x 是 3,那么它会抛出类似的东西; 463

有人可以告诉我这是怎么做到的吗?

原文由 user1022585 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 263
2 个回答

您可以使用 rand()pow() 来实现:

 $digits = 3;
echo rand(pow(10, $digits-1), pow(10, $digits)-1);

这将输出一个介于 100 和 999 之间的数字。这是因为 10^2 = 100 和 10^3 = 1000,然后您需要将其减去 1 以使其处于所需范围内。

如果 005 也是一个有效示例,您将使用以下代码用前导零填充它:

 $digits = 3;
echo str_pad(rand(0, pow(10, $digits)-1), $digits, '0', STR_PAD_LEFT);

原文由 Marcus 发布,翻译遵循 CC BY-SA 3.0 许可协议

以下是生成特定长度验证码的简单方法。长度可以指定,默认生成4位代码。

 function get_sms_token($length = 4) {

    return rand(
        ((int) str_pad(1, $length, 0, STR_PAD_RIGHT)),
        ((int) str_pad(9, $length, 9, STR_PAD_RIGHT))
    );
}

echo get_sms_token(6);

原文由 aneetkukreja 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题