第一步:创建一个画布

第二步:创建颜色

第三步:准备字符

第四步:往 画布上写字符

第五步:画干扰线(点)

第六步:输出格式

第七步:输出图片

第八步:销毁资源<?php

verify();

function verify($width = 100 , $height = 40 , $num = 5 , $type = 3 ){

//1 创建画布

$image = imagecreatetruecolor($width , $height);

//2 创建颜色  //因为后边总是用,所以写了两个函数,分别是lightColor(浅颜色)、deepColor(深颜色)

//3 创建字符 //这里是自己选择的类型,1 就是纯数字,2 就是纯小字母, 3 就是数字大小写字母的混合

switch($type){

case 1:

//定义字符串

$str = "0123456789";

//打乱字符串

$strNew = str_shuffle($str);

//截取$num个

$string = substr($strNew , 0 , $num);

break;

case 2:

//定义字符

$arr = range('a' , 'z');

//打乱字符串数组

shuffle($arr);

//截取

$tmp = array_slice($arr , 0 , $num);

//连成字符串

$string = join('' , $tmp);

break;

case 3:

$str = "23456789abcdefghjklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ";

$string = substr(str_shuffle($str) , 0 , $num);

break;

}

//给背景填充浅颜色 //背景颜色太深的话验证码就看不清了

imagefilledrectangle($image , 0 , 0 , $width , $height , lightColor($image));

//4 往画布上写入字符

for($i = 0; $i

//floor是取整,$width / $num 把宽度分了$num块地,*$i是一个字符占一块地,以免全都堆在一块看不出来

$x = floor($width / $num) * $i;

$y = mt_rand(10 , $height - 20);

imagechar ($image , 5 , $x , $y , $string[$i] , deepColor($image));

}

//5 画干扰线、点

//干扰线

for($i = 0; $i

imagearc ($image , mt_rand(10 , $width) , mt_rand(10 , $height) , mt_rand(10 , $width) , mt_rand(10 , $height) , mt_rand(0 , 10) , mt_rand(0 , 270) , deepColor($image));

}

//干扰点

for( $i = 0; $i<50; $i++) {

imagesetpixel($image , mt_rand(0 , $width) , mt_rand(0 , $height) , deepColor($image));

}

ob_clean();//擦除缓冲区

//6 告诉浏览器输出格式:png

header("Content-type: image/png");

//7 输出图片

imagepng($image);

//8 销毁

imagedestroy($image);

return $string;

//echo $string;

}

//设置深浅颜色

function lightColor ($image) {

return imagecolorallocate($image , mt_rand(120 , 255) , mt_rand(120 , 255) , mt_rand(120 , 255));

}

function deepColor ($image) {

return imagecolorallocate($image , mt_rand(0 , 120) , mt_rand(0 , 120) , mt_rand(0 , 120));

}

?>

特别说明:ob_clean();//擦除缓冲区

之前是没有加上这个的,结果就告诉我“因存在错误而无法显示”,如下图:

好了。

php 验证码小写,PHP实现验证码相关推荐

  1. python制作验证码_Python编写生成验证码的脚本的教程

    在web开发中经常用到验证码,为了防止机器人注册或者恶意登陆和查询等,作用不容小觑 但是验证码其实不是一个函数就能搞定的,它需要生成图片和水印,其实每种语言都有相关的函数生成图片和文字水印.包括我熟悉 ...

  2. php登录调用验证码,PHP编写登录验证码功能 附调用方法

    本文实例为大家分享了一个PHP写的登录验证码功能,供大家参考,具体内容如下 ShowKey.php<?php session_start(); //设置COOKIE或Session functi ...

  3. python验证码生成_Python 生成验证码示例

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 在web开发中经常用到验证码,为了防止机器人注册或者恶意登陆和查询等,作用不容小觑 但是验证码其实 ...

  4. php读取js验证码,PHP + JS 实现验证码功能

    验证码是网站防止恶意攻击最常用的手段,怎样使用PHP来生成验证码呢,下面就直接上例子 首先给出生成验证码的PHP代码: 将上面的代码放在一个单独的php文件中,如:auth_code.php,最好不要 ...

  5. 注册与验证码php源代码,PHP验证码处理源代码

    /** * 安全的验证码要:验证码文字扭曲.旋转,使用不同字体,添加干扰码. * @原作者: 流水孟春 * @修 改: flymorn **/ class YL_Security_Secoder { ...

  6. java生成验证码实例_Java生成验证码功能实例代码

    页面上输入验证码是比较常见的一个功能,实现起来也很简单.给大家写一个简单的生成验证码的示例程序,需要的朋友可以借鉴一下. 闲话少续,直接上代码.代码中的注释很详细. package com.SM_te ...

  7. php生成图片验证码-附五种验证码

    这篇文章主要给大家讲解php生成图片验证码,包括数字验证码.数字和字母验证码.中文验证码.仿google验证码.算术验证码,实现此功能主要通过GD库,生成一张带有验证码的图片,并把验证码存在sessi ...

  8. Python3 爬虫学习笔记 C13【验证码对抗系列 — 滑动验证码】

    Python3 爬虫学习笔记第十三章 -- [验证码对抗系列 - 滑动验证码] 文章目录 [13.1]关于滑动验证码 [13.2]滑动验证码攻克思路 [13.3]模拟登录 bilibili - 总体思 ...

  9. Python3 爬虫学习笔记 C12【验证码对抗系列 — 图形验证码】

    Python3 爬虫学习笔记第十二章 -- [验证码对抗系列 - 图形验证码] 文章目录 [12.1]关于普通图形验证码 [12.2]tesserocr 库识别验证码 [12.3]pytesserac ...

最新文章

  1. 轴添加点击事件_Q群答疑丨如何批量修改Revit轴网编号,为它添加前缀?
  2. python func_Python functool module
  3. Effective C++学习第十一天
  4. 电磁工程计算机辅助设计,《ANSYS工程应用教程-热与电磁学篇》
  5. 蛋壳公寓CEO高靖被限制消费
  6. 老前端工程师现身说法,2021Web前端开发学习路线图
  7. 电子设计从零开始(1)
  8. 电脑自动化考证难不难
  9. 视频压缩:I帧、P帧、B帧 关键帧
  10. java根据cookie统计uv,利用Cookie统计UV流量 | 学步园
  11. 计算机上无线网络开关在哪里,联想笔记本无线网络开关,教您联想笔记本无线网络开关在哪...
  12. hdu 2087 剪花布条 kmp小水
  13. mysql 备份 access_备份access数据库
  14. 俄勒冈之旅_俄勒冈州波特兰市严格禁止面部识别技术
  15. NM_CUSTOMDRAW消息
  16. 【Tools】抓包工具——Charles(中名:花瓶)
  17. 如何在GitHub上传并更新项目
  18. 百度智能云发布全新云智一体3.0架构,自研技术贯穿各层级
  19. html5微信语音转文字,文字转换语音软件:我有个朋友不会识字 怎么能把微信上别人发给他的文字转换成语音...
  20. 关于ECW文件格式读取

热门文章

  1. 第十五届全国大学生智能汽车竞赛全国总决赛提交技术报告通知
  2. 磁悬浮地球仪控制初步测试
  3. python微信红包代码_Python实现的微信红包提醒功能示例
  4. android调用web接口,Android调用webservice 接口
  5. php 正则教程,最通俗易懂的php正则表达式教程(上)
  6. python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)
  7. JavaScript 的使用简单总结
  8. android将拦截短信通过邮箱发送,网易邮箱Android客户端推出 加速布局移动互联网...
  9. php 常用session函数,PHP Session 常用的函数
  10. eclipse如何连接mysql_Python如何连接 MySQL?