举例生成四位验证(常用的喔)
思路:建立字符串,随机从字符串挑选4个
在PHP中有一个函数rand
它的作用就是产生一个随机整数
两个语法为
int rand (void)
int rand (int $min,int $max)//有限制有条件的挑选随机数
没有条件限制的产生随机整数,代码为
$str = "abcdefghijklmnopqrstuvwxyz0123456789";
echo rand();
!!!提示:字符串索引号从0开始
如果想要指定条件,代码为
$str = "abcdefghijklmnopqrstuvwxyz0123456789";
echo rand(0,10);
mt_rand可代替rand函数
作用可生成更好的随机数
由于字符串为36位,索引号从0开始,所以减1位,代码为
$str = "abcdefghijklmnopqrstuvwxyz0123456789";
echo mt_rand(0,$len-1);
以上都是生成一位随机数
下面我们分析如何生成四位函数
首先我们了解一个函数 substr
作用是返回字符串的字
string substr (string $string , int $start [,int $length] )
string 是设置好的字符串 start是从0开始计算
<?php
$rest = substr ( "abcdef" , - 1 ); // 返回 "f"
$rest = substr ( "abcdef" , - 2 ); // 返回 "ef"
$rest = substr ( "abcdef" , - 3 , 1 ); // 返回 "d"
?>
length是从哪个字符串开始 从0开始算起,最多包括length个字符如果是负数,将倒数开始算起,后面也可以加逗号 限制个数
<?php
$rest = substr ( "abcdef" , 0 , - 1 ); // 返回 "abcde"
$rest = substr ( "abcdef" , 2 , - 1 ); // 返回 "cde"
$rest = substr ( "abcdef" , 4 , - 4 ); // 返回 ""
$rest = substr ( "abcdef" , - 3 , - 1 ); // 返回 "de"
?>
然后我们来正式输入四位验证码过程
$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;
然后四位数的代码就会产生了。以上就是四位验证码的讲解。