標籤: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在最後也可以不寫
PHP_製作驗證碼