PHP生成图像验证码的方法小结(2种方法)_.docx

上传人:啊飒飒 文档编号:11622152 上传时间:2021-08-26 格式:DOCX 页数:7 大小:13.10KB
返回 下载 相关 举报
PHP生成图像验证码的方法小结(2种方法)_.docx_第1页
第1页 / 共7页
PHP生成图像验证码的方法小结(2种方法)_.docx_第2页
第2页 / 共7页
PHP生成图像验证码的方法小结(2种方法)_.docx_第3页
第3页 / 共7页
PHP生成图像验证码的方法小结(2种方法)_.docx_第4页
第4页 / 共7页
PHP生成图像验证码的方法小结(2种方法)_.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《PHP生成图像验证码的方法小结(2种方法)_.docx》由会员分享,可在线阅读,更多相关《PHP生成图像验证码的方法小结(2种方法)_.docx(7页珍藏版)》请在三一文库上搜索。

1、PHP生成图像验证码的方法小结(2种方法)_ 这篇文章主要介绍了PHP生成图像验证码的方法,结合实例形式分析了加法运算验证码与字符验证码2种方法供大家参考借鉴,需要的伴侣可以参考下 1、生成加法运算验证码图片 session_start (); /*定义头文件为图片*/ header(Content-type: image/png); /*生成验证码*/ /*创建图片设置字体颜色*/ $im = imagecreate($w, $h); $red = imagecolorallocate($im, 255, 255, 255); $white = imagecolorallocate($im,

2、 255, 255, 255); /*随机生成两个数字*/ $num1 = rand(1, 20); $num2 = rand(1, 20); $_SESSION administratorConfirmCode = $num1+$num2; /*设置图片背景颜色*/ $gray = imagecolorallocate($im, 118, 151, 199); $black = imagecolorallocate($im, mt_rand(0, 100), mt_rand(0, 100), mt_rand(0, 100); /*创建图片背景*/ imagefilledrectangle($

3、im, 0, 0, 100, 24, $black); /*在画布上随机生成大量点*/ for ($i = 0; $i 80; $i+) imagesetpixel($im, rand(0, $w), rand(0, $h), $gray); /*将计算验证码写入到图片中*/ imagestring($im, 5, 5, 4, $num1, $red); imagestring($im, 5, 30, 3, +, $red); imagestring($im, 5, 45, 4, $num2, $red); imagestring($im, 5, 70, 3, =, $red); images

4、tring($im, 5, 80, 2, ?, $white); /*输出图片*/ imagepng($im); imagedestroy($im); 2、生成字符验证码图片【值得留意的是在字体哪里,需要引入实际的字体路径,否则,可能消失图像显示不了验证码】 session_start (); /*设置文件头为图片输出*/ Header(Content-type: image/JPEG); /*调用生成验证码函数*/ $str=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234565789; $result=; for($i=0;

5、$i$length;$i+) $num$i=rand(0,61); $result.=$str$num$i; $text = $result; $_SESSION administratorConfirmCode = $text; /*设置图片的宽度和高度*/ $im_x = $w; $im_y = $y; /*创建图片*/ $im = imagecreatetruecolor($im_x,$im_y); $text_c = ImageColorAllocate($im, mt_rand(0,100),mt_rand(0,100),mt_rand(0,100); $tmpC0=mt_rand(

6、100,255); $tmpC1=mt_rand(100,255); $tmpC2=mt_rand(100,255); $buttum_c = ImageColorAllocate($im,$tmpC0,$tmpC1,$tmpC2); imagefill($im, 16, 13, $buttum_c); /*字体文件*/ $font = _WEB_DIR_./font/comic.ttf; for ($i=0;$istrlen($text);$i+) $tmp =substr($text,$i,1); $array = array(-1,1); $p = array_rand($array);

7、 $an = $array$p*mt_rand(1,10);/角度 $size = 28; imagettftext($im, $size, $an, 15+$i*$size, 35, $text_c, $font, $tmp); /*将字符写入文件中*/ $distortion_im = imagecreatetruecolor ($im_x, $im_y); imagefill($distortion_im, 16, 13, $buttum_c); for ( $i=0; $i$im_x; $i+) for ( $j=0; $j$im_y; $j+) $rgb = imagecolorat

8、($im, $i , $j); if( (int)($i+20+sin($j/$im_y*2*M_PI)*10) = imagesx($distortion_im) (int)($i+20+sin($j/$im_y*2*M_PI)*10) =0 ) imagesetpixel ($distortion_im, (int)($i+10+sin($j/$im_y*2*M_PI-M_PI*0.1)*4) , $j , $rgb); /*干扰元素点的数量*/ $count = 160; /*创建干扰元素点*/ for($i=0; $i$count; $i+) $randcolor = ImageCol

9、orallocate($distortion_im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255); imagesetpixel($distortion_im, mt_rand()%$im_x , mt_rand()%$im_y , $randcolor); /*创建干扰线条*/ $rand = mt_rand(5,30); $rand1 = mt_rand(15,25); $rand2 = mt_rand(5,10); for ($yy=$rand; $yy=+$rand+2; $yy+) for ($px=-80;$px=80;$px=$px+0.1) $x=$px/$rand1; if ($x!=0) $y=sin($x); $py=$y*$rand2; imagesetpixel($distortion_im, $px+80, $py+$yy, $text_c); /*以PNG格式将图像输出到扫瞄器*/ ImagePNG($distortion_im); /*销毁图像*/ ImageDestroy($distortion_im); ImageDestroy($im); 盼望本文所述对大家PHP程序设计有所关心。 .

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1