問題が発生しました。php で 5 文字または 7 文字の数字コードを生成しようとしていますが、次のコードには文字が含まれています。必要なのは数字だけです。よろしくお願いします。
$newgid = substr(md5(microtime()),rand(0,9),5);
rand()
0 から 99999 までの数値を生成し、それを文字列として扱うために使用します。
$newgid = sprintf('%05d', rand(0, 99999));
数値が 0 ではなく 10000 から始まることを気にしない場合は、これが最短の方法です。
mt_rand(10000, 99999)
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;
}
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;
}
これは、希望の長さで数値の文字列を生成する短くて甘い関数です。