1、lt;?php/*定义头文件为图片*/header("Content-type: image/PNG");/*调用生成验证码函数*/getCode(4,100,30);
![PHP生成验证码:[2]php混合验证码](https://exp-picture.cdn.bcebos.com/c33acc828689a146d493134af4bd4c7c35b334ba.jpg)
2、/*** 定义生成验证码图片函数* @param int $num 生成验证码个数* @param int $w 图片宽* @param int $h 图片高**/function getCode($num,$w,$h) { /** * 去掉了数字0和1 字母小写O和L * 避免用户输入时模糊混淆 */ $str = "23456789abcdefghijkmnpqrstuvwxyz"; $code = ''; for ($i = 0; $i < $num; $i++) { $code .= $str[mt_rand(0, strlen($str)-1)]; }
![PHP生成验证码:[2]php混合验证码](https://exp-picture.cdn.bcebos.com/35f2224133bad341685f1c84427622bc7cc52cba.jpg)
3、/*首疏扌熘创建图片,定义大小颜色等*/ $im = imagecreate($w, $h); $black = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120)); $gray = imagecolorallocate($im, 118, 151, 199); $bgcolor = imagecolorallocate($im, 235, 236, 237); /*创建图片背景*/ imagefilledrectangle($im, 0, 0, $w, $h, $bgcolor); /*创建图片边框*/ imagerectangle($im, 0, 0, $w-1, $h-1, $gray); /*在画布上随机生成大量点*/ for ($i = 0; $i < 80; $i++) { imagesetpixel($im, rand(0, $w), rand(0, $h), $black); }
![PHP生成验证码:[2]php混合验证码](https://exp-picture.cdn.bcebos.com/c8373cbc7dc5cf675a7d28f58e96b814f5d026ba.jpg)
4、/*在额鹿赤柝画布上随机生成大量点*/ for ($i = 0; $i < 80; $i++) { imagesetpixel($im, rand(0, $w), rand(0, $h), $black); } /** * 将字符随机显示在画布上 * 字符的水平间距和位置随机生成 */ $strx = rand(3, 8); for ($i = 0; $i < $num; $i++) { $strpos = rand(1, 6); imagestring($im, 5, $strx, $strpos, substr($code, $i, 1), $black); $strx += rand(10, 30); } /*输出图片*/ imagepng($im); imagedestroy($im);}
![PHP生成验证码:[2]php混合验证码](https://exp-picture.cdn.bcebos.com/04d7a614f4d0b503bff0bb4dcc4ec28332bf20ba.jpg)
5、最终结果如图所示:################################## #### 纯属凑字 #### ##################################
![PHP生成验证码:[2]php混合验证码](https://exp-picture.cdn.bcebos.com/c3c22dbf3bef354f2e9a498d23db574afb321bba.jpg)