一段实用的php验证码函数

本文实例为大家分享了几段PHP验证码函数,都很实用,具体内容如下

代码段一:

简单PHP验证码函数

rush:PHP;"> PHP

function code(){

$im = imagecreatetruecolor(100,40);

$black = imagecolorallocate($im,0);

$white = imagecolorallocate($im,255,255);

imagefill($im,$white);

$strarr=array_merge(range(0,9),range(a,z),range(A,Z));

shuffle($strarr);

$str=join(array_slice($strarr,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,$color2);

}

header("content-type:image/png");

imagepng($im);

}

code() ;

?>

代码段二:

PHP验证码函数

rush: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);

imagefill($_img,$_white);

$_gray = imagecolorallocate($_img,196,196);

imagerectangle($_img,$_width-1,$_height-1,$_gray);

for ($i=0; $i < 6; $i++) {
$_md_color = imagecolorallocate($_img,mt_rand(200,255),255));
imageline($_img,mt_rand(0,$_width),$_height),$_md_color);
}

for ($i=0; $i < 50; $i++) {
$_md_color = imagecolorallocate($_img,255));
imagestring($_img,1,mt_rand(1,$_width-5),$_height-5),"*",$_md_color);
}

for ($i=0; $i < $_code_length ; $i++) {
$_md_color = imagecolorallocate($_img,102),102));
imagestring($_img,$i * $_width/$_code_length+ mt_rand(1,10),$_height/2),$_SESSION["code"][$i],$_md_color);
}

header("Content-Type:image/png");

imagepng($_img);

imagedestroy($_img);
}

代码段三:

PHP图片验证函数

rush:PHP;"> /*@ captcha()函数功能生成验证码 * @ 可自定义参数: * @ $width 图片宽度,认80 * @ $high 高度,认25 * @ $num 验证码个数,认4个 * @ $line_num 随机画线条的个数,认10 * @ $sNow_num 随机雪花的数量认50 */ function captcha($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'); imagefill($img,'0',$backcolor); //添加黑色边框 $bordercolor = imagecolorallocate($img,0); imagerectangle($img,$width-1,$high-1,$bordercolor); //随机画线条 for($i=0;$i<$line_num;$i++){ imageline($img,$width*0.1),$high),mt_rand($width*0.9,$width),imagecolorallocate($img,mt_rand(150,255))); } //随机打雪花 for ($i=0;$i<$sNow_num;$i++){ imagechar($img,'*',255))); } //画验证码 for ($b = 0;$b < strlen($_SESSION['captcha']);$b++){ imagechar($img,$b*$width/$num+mt_rand(5,mt_rand(2,$high/2),$_SESSION['captcha'][$b],mt_rand(10,150),100))); } ob_clean();//清空输出缓冲区 imagepng($img); imagedestroy($img); }

以上就是三段参考性较高的PHP验证码函数,希望对大家学习PHP程序设计有所帮助。

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...