3

繰り返しなしで 16 の長さの乱数コードを PHP で生成したいと考えています。これを行う最善の方法は何ですか?私はこのコードを使用します:

$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);
?>
4

2 に答える 2