PHP生成图片验证码功能示例


Posted in PHP onJanuary 12, 2017

本文实例讲述了PHP生成图片验证码功能。分享给大家供大家参考,具体如下:

只是简单的用随机函数实现了图片的生成,没有对验证的整个流程做介绍。

代码如下:

<?php
/**
 * Created by JetBrains PhpStorm.
 * User: lee
 * To change this template use File | Settings | File Templates.
 */
header("content-type:image/png");
$validateLength=4;
$strToDraw="";
$chars=[
  "0","1","2","3","4",
  "5","6","7","8","9",
  "a","b","c","d","e","f","g",
  "h","i","j","k","l","m","n",
  "o","p","q","r","s","t",
  "u","v","w","x","y","z",
  "A","B","C","D","E","F","G",
  "H","I","J","K","L","M","N",
  "O","P","Q","R","S","T",
  "U","V","W","X","Y","Z"
];
$imgW=80;
$imgH=25;
$imgRes=imagecreate($imgW,$imgH);
$imgColor=imagecolorallocate($imgRes,255,255,100);
$color=imagecolorallocate($imgRes,0,0,0);
for($i=0;$i<$validateLength;$i++){
  $rand=rand(1,58);
  $strToDraw=$strToDraw." ".$chars[$rand];
}
imagestring($imgRes,5,0,5,$strToDraw,$color);
for($i=0;$i<100;$i++){
  imagesetpixel($imgRes,rand(0,$imgW),rand(0,$imgH),$color);
}
imagepng($imgRes);
imagedestroy($imgRes);

运行效果如下:

PHP生成图片验证码功能示例

PHP 相关文章推荐
php中的观察者模式
Mar 24 PHP
php array的学习笔记
May 10 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
解析php通过cookies获取远程网页的指定代码
Jun 25 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
php中的静态变量的基本用法
Mar 20 PHP
网站防止被刷票的一些思路与方法
Jan 08 PHP
php curl 获取https请求的2种方法
Apr 27 PHP
php处理单文件、多文件上传代码分享
Aug 24 PHP
php 防止表单重复提交两种实现方法
Nov 03 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
PHP中字符串长度的截取用法示例
Jan 12 #PHP
PHP实现二维数组去重功能示例
Jan 12 #PHP
PHP生成图片缩略图类示例
Jan 12 #PHP
php+redis实现多台服务器内网存储session并读取示例
Jan 12 #PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
Jan 11 #PHP
YII2 实现多语言配置的方法分享
Jan 11 #PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 #PHP
You might like
S900/ ETON E1-XM 收音机
2021/03/02 无线电
php 什么是PEAR?(第三篇)
2009/03/19 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
Golang与python线程详解及简单实例
2017/04/27 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
python os用法总结
2018/06/08 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
记者岗位职责
2014/01/06 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
护士个人自我鉴定
2014/03/24 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
2014年仓库工作总结
2014/11/20 职场文书
2015年仓库工作总结
2015/04/09 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
安全教育的主题班会
2015/08/13 职场文书
小学数学教学反思范文
2016/02/16 职场文书
公开致歉信
2019/06/24 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
python b站视频下载的五种版本
2021/05/27 Python
MySQL数据库完全卸载的方法
2022/03/03 MySQL
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android
带你了解Java中的ForkJoin
2022/04/28 Java/Android
详解Go语言中Get/Post请求测试
2022/06/01 Golang
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL