验证码类 支持数字,字母,汉字,混合
程序员文章站
2022-05-15 22:14:53
...
width = $width; $this->height = $height; $this->codeNum = $codeNum; $this->codeType = $codeType; $this->fontSize = $fontSize; $this->fontType = $fontType; $this->codeStr = $codeStr; $this->strNum = strlen($this->codeStr)/3-1; $this->imageType = $imageType; $this->checkCode = $this->getCheckCode(); } //+-------------------------------------------------------------------------------- //* 生成验证码字符 //+-------------------------------------------------------------------------------- //* @return string //+-------------------------------------------------------------------------------- public function __toString(){ $string = implode('', $this->getCheckCode()); $_SESSION["code"]=$string; //加到session中 $this->getImage(); //输出验证码 return ''; } protected function getCheckCode(){ $string = array(); switch($this->codeType){ case 1: //数字字符串 $string = array_rand(range(0,9), $this->codeNum); break; case 2: //大字母字符串 $string = array_rand(array_flip(range('A', 'Z')), $this->codeNum); break; case 3: //汉字字符串 for($i=0; $icodeNum); $i++){ $start = mt_rand(0, $this->strNum); $string[$i]= self::msubstr($this->codeStr,$start); } break; case 4: //混合字符串 for($i=0; $icodeNum); $i++){ $rand=mt_rand(0,2); switch($rand){ case 0: $ascii = mt_rand(48,57); $string[$i] = sprintf('%c',$ascii); break;
2. [图片] 混合.jpg
3. [图片] 数字.jpg
4. [图片] 中文.jpg
5. [图片] 字母.jpg