话不多说,请看代码:
<?php
/**
* php生成验证码
* @param $width 画布宽
* @param $height 画布高
* @param $vcodelen 验证码长度
* @param $pointnum 干扰像素点数量
* @param $linenum 干扰线条数量
*
* 思路:创建验证码画布,生成并填充背景色,生成验证码内容/干扰像素点/线,填充到画布,输出。
*/
$width = 100;
$height = 30;
$vcodelen = 4;
$pointnum = 200;
$linenum = 3;
// 创建画布
$image = imagecreatetruecolor($width, $height);
// 创建色块
$bgcolor = imagecolorallocate($image, 255, 255, 255);
// 填充画布背景色
imagefill($image, 0, 0, $bgcolor);
// 验证码内容
for ($i=0; $i < $vcodelen; $i++) {
// 字体大小
$fontsize = 5;
// 字体颜色,颜色在限定范围内随机
$fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));
$data = 'abcdefghijklmnopqrstuvwxyz0123456789';
// 验证码内容在以上字符串内随机截取
$fontcontent = substr($data, rand(0,strlen($data)),1);
// 字符串显示位置
$x = ($i*$width/4)+rand(5,15);
$y = rand(5,10);
// 字符串填充图片
// imagestring的字体大小可选1-5,字体再大需要用imagettftext函数(需要字体文件)
imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
// imagettftext($image, $fontsize, 0, $x, $y, $fontcolor, '/font/Geneva.dfont', $fontcontent);
}
// 干扰像素点
for ($i=0; $i < $pointnum; $i++) {
$pointcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));
// 画布填充像素点函数
imagesetpixel($image, rand(0,$width), rand(0,$height), $pointcolor);
}
// 干扰线条
for ($i=0; $i < $linenum; $i++) {
$linecolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));
// 画布填充线条函数
imageline($image, rand(0,$width), rand(0,$height), rand(0,$width), rand(0,$height), $linecolor);
}
// 图片输出格式
header('content-type: image/png');
// 输出验证码图片
imagepng($image);
// 销毁画布
imagedestroy($image);
?>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# php
# 验证码
# 生成验证码
# PHP实现生成带背景的图形验证码功能
# PHP 极验验证码实例讲解
# PHP生成图片验证码功能示例
# 一个漂亮的php验证码类(分享)
# php图片验证码代码
# PHP生成图片验证码、点击切换实例
# PHP验证码类代码( 最新修改
# 完全定制化! )
# PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
# 完美解决thinkphp验证码出错无法显示的方法
# php发送短信验证码完成注册功能
# 背景色
# 可选
# 多说
# 需要用
# 再大
# imagefill
# fontsize
# imagecolorallocate
# imagecreatetruecolor
# bgcolor
# image
# brush
# lt
# rand
# pre
# class
# vcodelen
# pointnum
相关文章:
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
制作证书网站有哪些,全国城建培训中心证书查询官网?
常州自助建站费用包含哪些项目?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
如何获取PHP WAP自助建站系统源码?
音响网站制作视频教程,隆霸音响官方网站?
网站制作网站,深圳做网站哪家比较好?
IOS倒计时设置UIButton标题title的抖动问题
建站主机如何安装配置?新手必看操作指南
如何在服务器上配置二级域名建站?
如何通过二级域名建站提升品牌影响力?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
招商网站制作流程,网站招商广告语?
学校为何禁止电信移动建设网站?
c# await 一个已经完成的Task会发生什么
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
如何用PHP快速搭建高效网站?分步指南
魔方云NAT建站如何实现端口转发?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
建站之星后台管理:高效配置与模板优化提升用户体验
小型网站制作HTML,*游戏网站怎么搭建?
内网网站制作软件,内网的网站如何发布到外网?
深入理解Android中的xmlns:tools属性
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
建站之星安装后界面空白如何解决?
如何在西部数码注册域名并快速搭建网站?
建站之星如何配置系统实现高效建站?
青岛网站建设如何选择本地服务器?
如何在七牛云存储上搭建网站并设置自定义域名?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
如何设置并定期更换建站之星安全管理员密码?
如何选择高效稳定的ISP建站解决方案?
,购物网站怎么盈利呢?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
代刷网站制作软件,别人代刷火车票靠谱吗?
javascript中对象的定义、使用以及对象和原型链操作小结
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
建站主机与服务器功能差异如何区分?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
如何解决ASP生成WAP建站中文乱码问题?
建设网站制作价格,怎样建立自己的公司网站?
如何快速搭建高效简练网站?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
网站制作软件免费下载安装,有哪些免费下载的软件网站?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
制作网站怎么制作,*游戏网站怎么搭建?
*请认真填写需求信息,我们会在24小时内与您取得联系。