php - 在 php 中生成 16 长度随机数的最佳方法是什么?

标签 php

<分区>

我想在 PHP 中生成一个不重复且长度为 16 的随机数代码。 最好的方法是什么? 我使用这段代码:

$possible = '0123456789';
$code = '';
$i = 0;
while ($i < 14) {
    $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
    $i++;
}
echo($code);

但这是生成 1 个随机数。我想要 30000 个随机数。我该怎么办?

我也使用此代码,但不会生成 16 位长度:

<?php

    $con=mysqli_connect("localhost","root","","test1");
    // Check connection
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysql_connect_error();
    }
    for ($s=0;$s<10;$s++) {
        $possible = '0123456789';
        $code = '';
        $i = 0;
    while ($i < 16) {
        $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
        $i++;
    }
    echo($code);
    echo nl2br("$code <br/>");

    mysqli_query($con,"INSERT INTO test (ID, Code, Type, Used)
    VALUES ('', '".$code."','1', '0')");
    }
    for ($s=0;$s<10;$s++) {
        $possible = '0123456789';
        $code = '';
        $i = 0;
    while ($i < 16) {
        $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
        $i++;
    }
    echo($code);
    echo nl2br("$code <br/>");

    mysqli_query($con,"INSERT INTO test (ID, Code, Type, Used)
    VALUES ('', '".$code."','2', '0')");
    }
    for ($s=0;$s<10;$s++) {
        $possible = '0123456789';
        $code = '';
        $i = 0;
    while ($i < 16) {
        $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
        $i++;
    }
    echo($code);
    echo nl2br("$code <br/>");

    mysqli_query($con,"INSERT INTO test (ID, Code, Type, Used)
    VALUES ('', '".$code."','3', '0')");
    }
    mysqli_close($con);
?>

最佳答案

可以简单地使用 rand(pow(10,13),pow(10,14)-1) 生成一个随机的 14 位数字 - PHP 可以处理最大为 2< sup>51-1,因为如果它们变得太大,它会默默地将它们转换为 double float 。

关于php - 在 php 中生成 16 长度随机数的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17719464/

相关文章:

php - 使用 MySql 和 PHP 时获取记录集中最后一条记录的值

php - 使用单个查询搜索同一表中不同列中的每个单词

PHP 输入值传递给循环

带附件的 PHP 邮件 - 额外文件 : part 1. 4

php - 如何从mysql记录中返回php代码?

php - Laravel 5.2 认证错误

php - MYSQL根据另一个表中的值写入一个表

php - 使用 php 将复选框输入插入 postgresql

php - 从多个表中显示列

php - 使用 JS 和 PHP (MySQL) 实时检查用户名的安全性