资源描述:
《PHP验证码类实现验证码功能.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PHP验证码类实现验证码功能,有两个方法,分别是用内置字体和自定义字体生成验证码。具体代码如下: <?php /** *验证码生成类 *@example *$pic=newuImage(); *$code=$pic->getVerifyCode(); *header("Content-type:image/png"); *$pic->captchaFromFont($font='RAVIE.TTF');or$pic->captcha(); */ classuImage{ /** *验证码字符 *@ac
2、cessprotected */ protected$code; /** *生成图片验证码,直接输出的是图片,字体大小是内置字体,最大是5 *@accesspublic *@paramint$width验证码图片宽度 *@paramint$height验证码图片的高度 *@paramint$snow背景雪花的数量 *@paramint$line干扰线的条数 */ publicfunctioncaptcha($width=100,$height=30,$snow=80,$line=3){ $pic=imagecreatetrue
3、color($width,$height); $backageColor=imagecolorallocate($pic,0xFF,0xFF,0xFF); imagefill($pic,0,0,$backageColor); //打雪花 for($i=0;$i<=$snow;$i++){ $color=imagecolorallocate($pic,mt_rand(150,230),mt_rand(150,230),mt_rand(150,230)); imagechar($pic,1,mt_rand(0,$width),mt_ra
4、nd(0,$height),"*",$color); imagecolordeallocate($pic,$color); } //画干扰线 for($i=0;$i<=$line;$i++){ $x1=mt_rand(2,$width*0.2); $x2=mt_rand($width*0.8,$width-2); $y1=mt_rand(2,$height-2); $y2=mt_rand(2,$height-2); $color=imagecolorallocate($pic,mt_rand(130,250),mt_rand(
5、130,250),mt_rand(130,250)); imageline($pic,$x1,$y1,$x2,$y2,$color); imagecolordeallocate($pic,$color); } //画字符 $code=$this->code; $eachW=$width/strlen($code);//图片依据字符个数分配等份数 $fontWidth=imagefontwidth(5);//取得字体宽度 $fontHeight=imagefontheight(5);//取得字体高度 for($i=0;$i<
6、;strlen($code);$i++){ $color=imagecolorallocate($pic,mt_rand(30,155),mt_rand(30,155),mt_rand(30,150)); $x=mt_rand($eachW*$i,$eachW*($i+1)-$fontWidth); $y=mt_rand(3,$height-$fontHeight); imagechar($pic,5,$x,$y,$code{$i},$color);//水平画字符 imagecolordeallocate($pic,$color); }
7、 //输出 ob_start(); ob_clean(); imagepng($pic); imagedestroy($pic); } /** *根据自定义字体生成验证码 *@accesspublic *@paramstring$font字符文件,TrueType字体文件,.ttf字体 *@paramint$fontWeight字符大小 *@paramint$width图片宽 *@paramint$height图片高 *@paramint$snow背景雪花个数 *@paramint$line干扰线条数 *@paramin
8、t$padding图片内边距 */ publicfunctioncaptchaFromFont($fon