利用php生成验证码
发布时间 - 2026-01-10 23:13:57 点击率:次话不多说,请看代码:
<?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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
图册素材网站设计制作软件,图册的导出方式有几种?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
七夕网站制作视频,七夕大促活动怎么报名?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
大连 网站制作,大连天途有线官网?
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Laravel怎么清理缓存_Laravel optimize clear命令详解
如何用PHP工具快速搭建高效网站?
zabbix利用python脚本发送报警邮件的方法
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
装修招标网站设计制作流程,装修招标流程?
JavaScript如何实现类型判断_typeof和instanceof有什么区别
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
用v-html解决Vue.js渲染中html标签不被解析的问题
如何注册花生壳免费域名并搭建个人网站?
在线制作视频的网站有哪些,电脑如何制作视频短片?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何在Tomcat中配置并部署网站项目?
北京企业网站设计制作公司,北京铁路集团官方网站?
Laravel PHP版本要求一览_Laravel各版本环境要求对照
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
大同网页,大同瑞慈医院官网?
如何用免费手机建站系统零基础打造专业网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
深入理解Android中的xmlns:tools属性
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
EditPlus中的正则表达式 实战(1)
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
北京网站制作的公司有哪些,北京白云观官方网站?
Laravel怎么上传文件_Laravel图片上传及存储配置
如何在云指建站中生成FTP站点?
jQuery中的100个技巧汇总
利用 Google AI 进行 YouTube 视频 SEO 描述优化
手机软键盘弹出时影响布局的解决方法
jquery插件bootstrapValidator表单验证详解
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
如何在建站宝盒中设置产品搜索功能?
如何在阿里云通过域名搭建网站?
Python文件异常处理策略_健壮性说明【指导】
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程

