重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
php生成随机数的几种方法,总结如下:
创新互联专注于崇明企业网站建设,响应式网站设计,商城网站定制开发。崇明网站建设公司,为崇明等地区提供建站服务。全流程专业公司,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
第一种方法,非常简单,直接使用系统自带的函数:
查看代码1 srand((double)microtime()*1000000);
2 //随机产生0-99之间的整数
3 $randval=rand(0,99999999);
4 echo $randval,'
';
5
6
第二种方法,稍微复杂一点,不只是生成只有数字的随机字符串,更包括了各种特殊字符:
查看代码
function randomkeys($length){
$output='';
for($a=0;$a$length; $a++){
$output.=chr(mt_rand(33, 126));
}
return $output;
}
echo randomkeys(20);
通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。代码如下:
function randomkeys($length)
{
$pattern = '1234567890abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./l
t;?;#:@~[]{}-_=+)(*^%___FCKpd___0pound;"!'; //字符池
for($i=0;$i$length;$i++)
{
$key .= $pattern{mt_rand(0,35)}; //生成php随机数
}
return $key;
}
echo randomkeys(8);
这个php随机函数能生成XC*=z~7L这样的字符串,随机!
另一种用PHP生成随机数的方法:利用chr()函数,省去创建字符池的步骤。代码如下:
function randomkeys($length)
{
$output='';
for ($a = 0; $a $length; $a++) {
$output .= chr(mt_rand(33, 126)); //生成php随机数
}
return $output;
}
echo randomkeys(8);
在第二个php随机函数里,先用mt_rand()生成一个介于33到126之间的php随机数,然后用chr()函数转化成字符。查看ascii码表就会发现,33到126代表的正是第一个函数中字符池里的所有字符。第二个函数和第一个函数功能相同,而且更简洁。
?php
$number = '';//初始化一个幸运数数
$num = rand(1,100); //得到一个1-100的随机数
if($num =1 and $num=20){
$number = 1; //如果随机数在1-20 那么这个幸运数就为1 ,也就是说幸运数1的概率为20%
}else if($num =21 and $num =41 ){
$number = 2; //如果随机数在21-41 那么这个幸运数就为2 ,也就是说幸运数2的概率为21%
}else if..... //依次类推
我这里的1-20 21-41 这个区间是乱写的 你可以打乱 意思就是说从1-100中间得到一个随机数
再给这个随机数添加一个概率 如果说这个随机数是在1-20直接的任意一个那么幸运数就为1,也就是说出现1的概率为20%