前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP基于GD2函数库实现验证码功能示例

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

作者头像
砸漏
发布2020-10-21 14:49:32
1.5K0
发布2020-10-21 14:49:32
举报
文章被收录于专栏:恩蓝脚本

本文实例讲述了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)函数设置文字,且imagestring()函数如果直接绘制中文字符串会出现乱码,如果要绘制中文字符串可以使用imagettftext()函数;

imagepng(image[,filename])函数以phg格式将图像输出到浏览器或者保存为文件,第1个参数为你创建的图像标识号,第2个参数为可选参数,你要保存文件的文件名;

imagesetpixel(image, x, y, color)函数画单个像素点;

imageline(image, x1, y1, x2, y2, color)函数画一条线段,x1、y1是线段是左上角坐标,x2、y2是线段的右下角坐标。

代码主要如下:

代码语言:javascript
复制
<?php
  //创建画布
  $img = imagecreatetruecolor(100, 50);
  //创建颜色
  $black = imagecolorallocate($img, 0x00, 0x00, 0x00);
  $green = imagecolorallocate($img, 0x00, 0xFF, 0x00);
  $white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
  //画布填充颜色
  imagefill($img, 0, 0, $white);//背景为白色
  //生成随机验证码
  $code = make(5);
  //设置文字
  imagestring($img, 5, 10, 10, $code, $black);//黑字
  //加入噪点干扰
  for ($i = 0; $i <300; $i++){
    imagesetpixel($img, rand(0, 100), rand(0, 100), $black);
    imagesetpixel($img, rand(0, 100), rand(0, 100), $green);
  }
  //加入线段干扰
  for ($n = 0; $n <=1; $n++){
    imageline($img, 0, rand(0, 40), 100, rand(0, 40), $black);
    imageline($img, 0, rand(0, 40), 100, rand(0, 40), $white);
  }
  //输出验证码
  header("content-type: image/png");//告诉浏览器这个文件是一个png图片
  imagepng($img);
  //销毁图片,释放内存
  imagedestroy($img);
  //生成随机验证码的函数
  function make($length){
    $code = 'abcdefghijklmnopqrsruvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    //str_shuffle()函数用于打乱字符串
    return substr(str_shuffle($code), 0, $length);
  }
? 

实现效果如下图:

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP图形与图片操作技巧汇总》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档