php7实践指南-ch12图像处理图像验证码

12.4 图像验证码

图像验证码就是在一张图片上写上几个字符,并辅之以一些干扰元素(通常为像素点和斜线)。图像验证码经常用在用户登录、论坛发帖等场景中,其目的是为了防止机器人(程序)自动操作,验证此次行为是由用户来完成的。以下示例为一个生成验证码的文件code.php:

<?php
function random($len){
    $srcstr="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    mt_srand();
    $strs="";
    for($i=0;$i<$len;$i++){
        $strs.=$srcstr[mt_rand(0,35)];
    }
    return strtoupper($strs);
}


$str=random(4);  //随机生成的字符串
$width =50;     //验证码图片的宽度
$height = 25;   //验证码图片的高度
@header("Content-Type:image/png");


//echo $str;
$im= imagecreate($width,$height);
//背景色
$back=imagecolorallocate($im,0xFF,0xFF,0xFF);

//模糊点颜色
$pix=imagecolorallocate($im,187,230,247);

//字体颜色
$font=imagecolorallocate($im,41,163,236);

//绘制模糊作用点
mt_srand();
for($i=0;$i<1000;$i++){
    imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$pix);
}
imagestring($im,5,7,5,$str,$font);
imagerectangle($im,0,0,$width-1,$height-1,$font);
imagepng($im);
imagedestroy($im);

在另外一个文件a.php中将code.php文件作为HTML标签img的src属性值,代码如下:

<?php
echo "<img src=code.php>";//生成图片
?>

在浏览器中运行a.php文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值