Как получить длинные 19-значные случайные числа в PHP?

Поэтому мне нужно сделать уникальный номер покупки мобильной игры. Каждый пользователь, покупающий запись о покупке в приложении, должен прикреплять уникальные длинные 19-значные номера из php-кода и сохранять в базе данных mysql.

Но как я могу сделать случайные 19-значные числа?

Я пытался так, но ошибки.

$num_str = sprintf("%19d", mt_rand(1, 9999999999999999999));

3

Решение

Вы также можете попробовать это:

function random19() {
$number = "";
for($i=0; $i<19; $i++) {
$min = ($i == 0) ? 1:0;
$number .= mt_rand($min,9);
}
return $number;
}

echo random19();

который вывел бы некоторые случайные 19 чисел: 6416113158912395605

3

Другие решения

Вы должны сделать что-то вроде —

$num_str = sprintf("%10d", mt_rand(1, mt_getrandmax())).sprintf("%9d", mt_rand(1, mt_getrandmax()));
if (strlen($num_str) < 19)
$num_str = str_pad($num_str, 19, rand(0, 9), STR_PAD_RIGHT);
else if(strlen($num_str) > 19)
$num_str = substr($num_str, 0, 19);
echo $num_str;

Распределение возвращаемых значений mt_rand () смещено в сторону четных чисел в 64-битных сборках PHP, когда max превышает 2 ^ 32. Это связано с тем, что если max больше значения, возвращаемого функцией mt_getrandmax (), выходные данные генератора случайных чисел должны быть увеличены.

0

$ randNumber = date («YmdHis»). rand (11111,99999);

-1
По вопросам рекламы [email protected]