Есть ли способ генерировать случайное число, основанное на min и max?
Например, если min равно 1 и max 20, он должен генерировать любое число от 1 до 20, включая 1 и 20?
<?php $min=1; $max=20; echo rand($min,$max); ?>
Быстрее быстрая версия использовала бы mt_rand:
$min=1; $max=20; echo mt_rand($min,$max);
Источник: http://www.php.net/manual/en/function.mt-rand.php .
ПРИМЕЧАНИЕ. Для этого сервер должен иметь модуль Math PHP для этого. Если это не так, укажите свой хост, чтобы включить его, или вам нужно использовать обычный (и более медленный) rand ().
В новом PHP7 есть, наконец, поддержка криптографически защищенных псевдослучайных целых чисел.
int random_int ( int $min , int $max )
random_int – Генерирует криптографически безопасные псевдослучайные целые числа
что в основном делает предыдущие ответы устаревшими.
rand(1,20)
Документы для функции rand для PHP находятся здесь:
http://php.net/manual/en/function.rand.php
Используйте srand()
чтобы установить начальное значение генератора случайных чисел.
Я собрал здесь ответы и сделал его независимым от версии;
function generateRandom($min = 1, $max = 20) { if (function_exists('random_int')): return random_int($min, $max); // more secure elseif (function_exists('mt_rand')): return mt_rand($min, $max); // faster endif; return rand($min, $max); // old }
Попробуй это. Он будет генерировать идентификатор в соответствии с вашим желанием.
function id() { // add limit $id_length = 20; // add any character / digit $alfa = "abcdefghijklmnopqrstuvwxyz1234567890"; $token = ""; for($i = 1; $i < $id_length; $i ++) { // generate randomly within given character/digits @$token .= $alfa[rand(1, strlen($alfa))]; } return $token; }