您的位置:首页 > 编程语言 > PHP开发

php生成验证码

2015-12-28 16:35 597 查看
//生成验证码
public function checkCode()
{
$width = 100;
$height= 30 ;
//创建画布,默认背景颜色为黑色
$img = imagecreatetruecolor($width, $height);

//指定字符串
$str = $this->randomString(4);

//将字符串放入session
$_SESSION["checkcode"] = implode("", $str) ;

//修改$str为字符串
$str = implode(" ", $str);
//设置干扰像素点
$pixelnum = 100;
for ($i=0; $i <$pixelnum ; $i++) {
$color = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
imagesetpixel($img, mt_rand(0,$width), mt_rand(0,$height), $color);
}
//设置干扰线
$linenum = 5 ;
for ($i=0; $i <$linenum ; $i++) {
$color = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
imageline($img, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $color);
}
//设置字符串颜色
$color = imagecolorallocate($img, mt_rand(150,255), mt_rand(150,255), mt_rand(150,255));
//将字符串写到画布
imagestring($img, 5, $width/5, $height/3, $str, $color);
//设置输出类型
header("Content-Type:image/png");
//输出到浏览器
imagepng($img);
}
//根据指定长度返回字符串数组
public function randomString($length)
{
$lower = range('a', 'z');
$upper = range('A', 'Z');
$num = range('0', '9');
$all = array_merge($lower,$upper,$num);
shuffle($all);

for ($i=0; $i <$length ; $i++) {
$str[]= $all[array_rand($all)];
}
return $str;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: