0

問題が発生しました。php で 5 文字または 7 文字の数字コードを生成しようとしていますが、次のコードには文字が含まれています。必要なのは数字だけです。よろしくお願いします。

$newgid = substr(md5(microtime()),rand(0,9),5);
4

7 に答える 7

5

rand()0 から 99999 までの数値を生成し、それを文字列として扱うために使用します。

$newgid = sprintf('%05d', rand(0, 99999));
于 2013-08-26T12:17:52.440 に答える
5

私は単に次のように使用mt_rand()します:

<?php
$a = '';
for ($i = 0; $i<7; $i++) 
{
    $a .= mt_rand(0,9);
}
echo $a;
?>

デモ!

于 2013-08-26T12:22:49.337 に答える
1

数値が 0 ではなく 10000 から始まることを気にしない場合は、これが最短の方法です。

mt_rand(10000, 99999)
于 2013-08-26T13:59:16.703 に答える
1
 function randomPrefix($length=5) {       
        $random = "";
        srand((double) microtime() * 1000000);
        $data = "0123456789";
       // $data = "A0B1C2DE3FG4HIJ5KLM6NOP7QR8ST9UVW0XYZ";
        for ($i = 0; $i < $length; $i++) {
            $random .= substr($data, (rand() % (strlen($data))), 1);
        }

        return $random;
    }
于 2013-08-26T12:26:08.253 に答える
1
function createPin($len){
    $maxNbrStr = str_repeat('9',$len);
    $maxNbr = intval($maxNbrStr);
    $n = mt_rand(0, $maxNbr);
    $pin = str_pad($n, $len, "0", STR_PAD_LEFT);
    return $pin;
}

これは、希望の長さで数値の文字列を生成する短くて甘い関数です。

于 2014-06-27T15:05:52.360 に答える