Случайное число в диапазоне с использованием PHP

Есть ли способ генерировать случайное число, основанное на 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() % ($max-$min)) + $min 

или

 rand ( $min , $max ) 

http://php.net/manual/en/function.rand.php

 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; }