我们要想生成的四位随机验证码无非就是在a-z,0-9之间的字符串;那么首先呢我们就要先把所有要用到的字符放在一个字符串里
$str="abcdefghijklmnopqrstuvwxyz0123456789";
我们所生成的四位随机验证码应该在上边字符串中获取
获取随机数,首先想到的应该是rand()函数,但是有一个更好的生成随机数的函数,是mt_rand;它的用法和rand是一样的。
我们上边已经定义了一个字符串,要想从字符串里边取其中的几个,我们应该知道字符串的长度。
$len=strlen($str);
$str呢前边我们已经定义了,strlen()函数是获取字符串的长度函数,我们把最后的值放在一个变量$len中;
那么我们所生成的随机字符串的下标是从0开始到$len-1之间的。
我们生成的随机数是四位的,所以就需要用到循环语句for
for($i=0;$i<4;$i++){
$rand=mt_rand(0,$len-1);
}
这样我们就能生成四个0-($len-1)之间的随机数
然而我们想要从字符串里边截取字符,需要用到substr函数,substr有三个参数:第一个参数为输入的字符串,第二个参数为截取的位置,第三个参数为截取的长度。
我们要将所截取的字符串放在一个空串里边;我们就应该在循环之前定义一个空字符串 $yzm='';
然后将substr截取字符串的函数放到循环里边
for($i=0;$i<4;$i++){
$rand=mt_rand(0,$len-1);
$yzm.=substr($str,$rand,1);
}
上面代码为循环四次,为此截取$str里边从随机数$rand开始的一个字符,然后将其存放到$yam变量中
最后在需要一个输出语句 echo $yzm; 就可以了。
完整代码如下:
<?php
header('content-type:text/html;charset=utf-8');
$str="abcdefghijklmnopqrstuvwxyz0123456789";
//生成四位验证码
//思路:随机从以上字符串选出四个
$len=strlen($str);
$yzm='';
for($i=0;$i<4;$i++){
$rand=mt_rand(0,$len-1);
$yzm.=substr($str,$rand,1);
}
echo $yzm;