一段实用的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程序设计有所帮助。