标签:range rand utf-8 bsp shuff val mux 验证 header
PHP制作一个验证码,主要使用数组相关函数
1 <?php 2 header("content-type:text/html;charset=UTF-8"); 3 //建立3个范围数组 4 $shuzi = range(0,9); 5 $zimuda = range(‘A‘,‘Z‘); 6 $zimuxiao = range(‘a‘,‘z ‘); 7 8 //将这3个数组合并成新数组 9 $arr=array_merge($shuzi,$zimuxiao,$zimuda); 10 11 //遍历新数组 12 foreach ($arr as $key => $value) { 13 //如果新数组里的元素包含下面的字,则将其删除(unset); 14 if($value == ‘0‘ || $value == ‘1‘ ||$value == ‘2‘ ||$value == ‘o‘ ||$value == ‘O‘ 15 ||$value == ‘I‘ ||$value == ‘i‘ ||$value == ‘Z‘ ||$value == ‘z‘ ||$value == ‘l‘){ 16 //删除键,值也随之删除 17 unset ($arr[$key]); 18 } 19 } 20 21 //将数组 元素打乱,其KEY值跟随元素被打乱 22 shuffle($arr); 23 //随机取出原数组的4个key值 24 $arr_rand = array_rand($arr,4); 25 //将原数组的key遍历输出,得到4个随机验证码 26 foreach ($arr_rand as $value) { 27 echo $arr[$value]; 28 } 29 30 //优化一下:0,1,2这3个数原本就需要排除,刚好在数组最前、连续,在定义范围数组的时候可以不写,直接从3开始,减少if判断;大小写字母Z在最后也可以不写
标签:range rand utf-8 bsp shuff val mux 验证 header
原文地址:http://www.cnblogs.com/bk233/p/7278927.html