• 售前

  • 售后

热门帖子
入门百科

PHP基于GD2函数库实现验证码功能示例

[复制链接]
123457441 显示全部楼层 发表于 2021-10-26 13:51:20 |阅读模式 打印 上一主题 下一主题
本文实例陈诉了PHP基于GD2函数库实现验证码功能。分享给各人供各人参考,具体如下:
在正式制作验证码之前要先增补点知识,PHP使用GD2函数库实现对各种图形图像的处理,以是我们制作验证码紧张要使用到一些GD2函数库里的一些函数:
imagecreatetruecolor($width,$height)函数,紧张用于创建画布,有2个参数width和height是必选的,代表你所要创建的画布的长和宽;
imagecolorallocate($image, $red, $green, $blue)函数,紧张用于添补图像,第1个参数是你所创建的图像的标识符,反面3个参数是颜色的RGB设置;
imagefill($image, $x, $y, $color)函数,第一个函数是你创建的图像标识符,第2、3个参数$x、$y是左上角坐标,最后一个参数是你要添补颜色;
imagestring($image, $font, $x, $y, $string, $color)函数设置笔墨,且
  1. imagestring()
复制代码
函数假如直接绘制中笔墨符串会出现乱码,假如要绘制中笔墨符串可以使用
  1. imagettftext()
复制代码
函数;
imagepng($image[,$filename])函数以phg格式将图像输出到浏览器或者生存为文件,第1个参数为你创建的图像标识号,第2个参数为可选参数,你要生存文件的文件名;
imagesetpixel($image, $x, $y, $color)函数画单个像素点;
imageline($image, $x1, $y1, $x2, $y2, $color)函数画一条线段,$x1、$y1是线段是左上角坐标,$x2、$y2是线段的右下角坐标。
代码紧张如下:
  1. <?php
  2.   //创建画布
  3.   $img = imagecreatetruecolor(100, 50);
  4.   //创建颜色
  5.   $black = imagecolorallocate($img, 0x00, 0x00, 0x00);
  6.   $green = imagecolorallocate($img, 0x00, 0xFF, 0x00);
  7.   $white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
  8.   //画布填充颜色
  9.   imagefill($img, 0, 0, $white);//背景为白色
  10.   //生成随机验证码
  11.   $code = make(5);
  12.   //设置文字
  13.   imagestring($img, 5, 10, 10, $code, $black);//黑字
  14.   //加入噪点干扰
  15.   for ($i = 0; $i <300; $i++){
  16.     imagesetpixel($img, rand(0, 100), rand(0, 100), $black);
  17.     imagesetpixel($img, rand(0, 100), rand(0, 100), $green);
  18.   }
  19.   //加入线段干扰
  20.   for ($n = 0; $n <=1; $n++){
  21.     imageline($img, 0, rand(0, 40), 100, rand(0, 40), $black);
  22.     imageline($img, 0, rand(0, 40), 100, rand(0, 40), $white);
  23.   }
  24.   //输出验证码
  25.   header("content-type: image/png");//告诉浏览器这个文件是一个png图片
  26.   imagepng($img);
  27.   //销毁图片,释放内存
  28.   imagedestroy($img);
  29.   //生成随机验证码的函数
  30.   function make($length){
  31.     $code = 'abcdefghijklmnopqrsruvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  32.     //str_shuffle()函数用于打乱字符串
  33.     return substr(str_shuffle($code), 0, $length);
  34.   }
  35. ?>
复制代码
实现效果如下图:


更多关于PHP相干内容感爱好的读者可检察本站专题:《PHP图形与图片操纵本事汇总》、《PHP数组(Array)操纵本事大全》、《PHP数据结构与算法教程》、《php步调设计算法总结》、《PHP数学运算本事总结》、《php字符串(string)用法总结》及《php常见数据库操纵本事汇总》
希望本文所述对各人PHP步调设计有所资助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作