随机数在范围使用PHP
有没有办法根据最小和最大生成一个随机数?
例如,如果min是1,最多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 。
注:您的服务器需要启用mathPHP模块才能正常工作。 如果没有,请启动主机,或者使用正常的(和较慢的)rand()。
在新的PHP7中 ,最终支持密码安全的伪随机整数。
int random_int ( int $min , int $max )
random_int – 生成密码安全的伪随机整数
这基本上使以前的答案过时了。
我在这里捆绑了答案,并使版本独立。
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 }
试试这一个。 它会根据你的意愿生成id。
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; }