使用 PHP 在 [min - max] 范围内随机数

问题描述 投票:0回答:7

有没有办法根据最小值和最大值生成随机数?

例如,如果 min 为 1,max 为 20,那么它应该生成 1 到 20 之间的任何数字,包括 1 和 20?

php security random
7个回答
179
投票
<?php
  $min=1;
  $max=20;
  echo rand($min,$max);
?>

46
投票

在新的 PHP7 中,终于支持了 加密安全的伪随机整数。

int random_int ( int $min , int $max )

random_int — 生成加密安全的伪随机整数

这基本上使以前的答案变得过时。


22
投票

更快更快的版本将使用 mt_rand:

$min=1; $max=20; echo mt_rand($min,$max);

来源:

http://www.php.net/manual/en/function.mt-rand.php

注意: 您的服务器需要启用 Math PHP 模块才能正常工作。如果没有,请修改您的主机以启用它,或者您必须使用正常(且较慢)的 rand()。


10
投票
我已将答案捆绑在这里并使其版本独立;

function generateRandom($min = 1, $max = 20) { // Prioritize `random_int` for security if (function_exists('random_int')) { return random_int($min, $max); // more secure } // Fallback to `mt_rand` if `random_int` isn't available if (function_exists('mt_rand')) { return mt_rand($min, $max); // faster } // Use `rand` as a last resort. // Uncomment line below to warn about potential issues // trigger_error("Using less secure 'rand' function for random number generation. Consider upgrading your PHP version.", E_USER_WARNING); return rand($min, $max); // old }
    

5
投票
(rand() % ($max-$min)) + $min

rand ( $min , $max )

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


5
投票
rand(1,20)

PHP rand 函数的文档在这里:

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

使用

srand()

 函数设置随机数生成器的种子值。


0
投票
试试这个。它会根据你的意愿生成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; }
    
© www.soinside.com 2019 - 2024. All rights reserved.