完整代码
<?php
header('content-type:text/html;charset=utf-8');
$str = "abcdefghijkomnopqrstuvwxyz0123456789";
//生成四位验证码
//思路:随机从以上字符串选出四个
// echo getrandmax();
// echo '<br>';
$len = strlen($str);//3
// echo '<br>';
$yzm = '';
for($i=0;$i<4;$i++){
$rand = mt_rand(0,$len-1);
$yzm .=substr($str,$rand,1);
//echo $rand.'<br>';
}
echo $yzm;
输出结果(结果是随机的,可能输出的不太一样):
1.给定字符串一个·
$str = "abcdefghijkomnopqrstuvwxyz0123456789";
2.获取字符串的长度,放到$len这个变量里
$len = strlen($str);
3.使用mt_rand获取,也就是生成0-len-1的随机数。
$rand = mt_rand(0,$len-1);
4.我们使用for循环生成随机数
for($i=0;$i<4;$i++){
$rand = mt_rand(0,$len-1);
echo $rand.'<br>';
}
5.创建一个空字符串,再从上边输出的数字中得到一位随机数,放到空字符串里。
$yzm = '';
for($i=0;$i<4;$i++){
$rand = mt_rand(0,$len-1);
$yzm .=substr($str,$rand,1);
//echo $rand.'<br>';
}
echo $yzm;
这样就完成了字符串的输出。
rand
rand — 产生一个随机整数
说明
int rand ( void )
int rand ( int $min , int $max )
如果没有提供可选参数 min 和 max , rand() 返回 0 到 getrandmax() 之间的伪随机整数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用 rand(5, 15)。
Note: 在某些平台下(例如 Windows) getrandmax() 只有 32767。如果需要的范围大于 32767,那么指定 min 和 max 参数就可以生成更大的数了,或者考虑用 mt_rand() 来替代之。
参数
min
返回的最低值(默认:0)
max
返回的最高值(默认: getrandmax() )
mt_rand
mt_rand — 生成更好的随机数
语法和rand一样
substr
substr — 返回字符串的子串
说明
string substr ( string $string , int $start [, int $length ] )
返回字符串 string 由 start 和 length 参数指定的子字符串。
参数
string
输入字符串。
start
如果 start 是非负数,返回的字符串将从 string 的 start 位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。
如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。
如果 string 的长度小于或等于 start ,将返回 FALSE 。
使用负数 start
<?php
$rest = substr ( "abcdef" , - 1 ); // 返回 "f"
$rest = substr ( "abcdef" , - 2 ); // 返回 "ef"
$rest = substr ( "abcdef" , - 3 , 1 ); // 返回 "d"
?>
length
如果提供了正数的 length ,返回的字符串将从 start 处开始最多包括 length 个字符(取决于 string 的长度)。
如果提供了负数的 length ,那么 string 末尾处的许多字符将会被漏掉(若 start 是负数则从字符串尾部算起)。如果 start 不在这段文本中,那么将返回一个空字符串。
如果提供了值为 0, FALSE 或 NULL 的 length ,那么将返回一个空字符串。
如果没有提供 length ,返回的子字符串将从 start 位置开始直到字符串结尾。
使用负数 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”
?>
返回值
返回提取的子字符串, 或者在失败时返回 FALSE 。