一段实用的php验证码函数
本文实例为大家分享了几段php验证码函数,都很实用,具体内容如下
代码段一:简单php验证码函数
<?php functioncode(){ $im=imagecreatetruecolor(100,40); $black=imagecolorallocate($im,0,0,0); $white=imagecolorallocate($im,255,255,255); imagefill($im,0,0,$white); $strarr=array_merge(range(0,9),range(a,z),range(A,Z)); shuffle($strarr); $str=join(array_slice($strarr,0,4)); $mm=rand(0,40); $aaa=rand(0,0); $bbb=rand(0,255); $ccc=rand(0,255); $color1=imagecolorallocate($im,$aaa,$bbb,$ccc); imagestring($im,5,$mm,10,$str,$color1); for($i=0;$i<700;$i++){ $aa=rand(0,255); $bb=rand(0,255); $cc=rand(0,255); $color=imagecolorallocate($im,$aa,$bb,$cc); $a=rand(0,100); $b=rand(0,40); imagesetpixel($im,$a,$b,$color); } for($t=0;$t<3;$t++){ $a1=rand(0,255); $b1=rand(0,255); $c1=rand(0,255); $color2=imagecolorallocate($im,$a1,$b1,$c1); $a2=rand(0,100); $b2=rand(0,40); $a3=rand(0,100); $b3=rand(0,40); imageline($im,$a2,$b2,$b3,$b3,$color2); } header("content-type:image/png"); imagepng($im); } code(); ?>
代码段二:php验证码函数
function_code($_code_length=4,$_width=75,$_height=25){ for($i=0;$i<$_code_length;$i++){ $_nmsg.=dechex(mt_rand(0,15)); } $_SESSION["code"]=$_nmsg; $_img=imagecreatetruecolor($_width,$_height); $_white=imagecolorallocate($_img,250,250,250); imagefill($_img,0,0,$_white); $_gray=imagecolorallocate($_img,196,196,196); imagerectangle($_img,0,0,$_width-1,$_height-1,$_gray); for($i=0;$i<6;$i++){ $_md_color=imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); imageline($_img,mt_rand(0,$_width),mt_rand(0,$_height),mt_rand(0,$_width),mt_rand(0,$_height),$_md_color); } for($i=0;$i<50;$i++){ $_md_color=imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); imagestring($_img,1,mt_rand(1,$_width-5),mt_rand(1,$_height-5),"*",$_md_color); } for($i=0;$i<$_code_length;$i++){ $_md_color=imagecolorallocate($_img,mt_rand(0,102),mt_rand(0,102),mt_rand(0,102)); imagestring($_img,5,$i*$_width/$_code_length+mt_rand(1,10),mt_rand(1,$_height/2),$_SESSION["code"][$i],$_md_color); } header("Content-Type:image/png"); imagepng($_img); imagedestroy($_img); }
代码段三:php图片验证码函数
/*@captcha()函数的功能:生成验证码 *@可自定义参数: *@$width图片宽度,默认80 *@$high高度,默认25 *@$num验证码个数,默认4个 *@$line_num随机画线条的个数,默认10 *@$snow_num随机雪花的数量,默认50 */ functioncaptcha($width=80,$high=25,$num=4,$line_num=10,$snow_num=50){ header('Content-Type:image/png'); session_start(); //生成随机数字+字母 for($a=0;$a<$num;$a++){ $code.=dechex(mt_rand(0,15));//dechex—十进制转换为十六进制 } //把生成的验证码保存在SESSION超级全局数组中 $_SESSION['captcha']=$code; //创建画布 $img=imagecreatetruecolor($width,$high); //填充背景色为白色 $backcolor=imagecolorallocate($img,'255','255','255'); imagefill($img,'0','0',$backcolor); //添加黑色边框 $bordercolor=imagecolorallocate($img,0,0,0); imagerectangle($img,0,0,$width-1,$high-1,$bordercolor); //随机画线条 for($i=0;$i<$line_num;$i++){ imageline($img,mt_rand(0,$width*0.1),mt_rand(0,$high),mt_rand($width*0.9,$width),mt_rand(0,$high), imagecolorallocate($img,mt_rand(150,255),mt_rand(150,255),mt_rand(150,255))); } //随机打雪花 for($i=0;$i<$snow_num;$i++){ imagechar($img,1,mt_rand(0,$width),mt_rand(0,$high),'*', imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255))); } //画验证码 for($b=0;$b<strlen($_SESSION['captcha']);$b++){ imagechar($img,5,$b*$width/$num+mt_rand(5,10),mt_rand(2,$high/2),$_SESSION['captcha'][$b], imagecolorallocate($img,mt_rand(10,150),mt_rand(10,150),mt_rand(0,100))); } ob_clean();//清空输出缓冲区 imagepng($img); imagedestroy($img); }
以上就是三段参考性较高的php验证码函数,希望对大家学习php程序设计有所帮助。