PHP实现变色验证码实例


Posted in PHP onJanuary 06, 2014
<?php 
header("Content-type: image/png,charset='utf-8'"); 
$im = imagecreatetruecolor(400, 30); 
//白色 
$white = imagecolorallocate($im, 255, 255, 255); 
//红色 
$red = imagecolorallocate($im, 255, 0, 0); 
//黑色 
$black=imagecolorallocate($im, 0, 0, 0); 
//绿色 
$green=imagecolorallocate($im, 0, 255, 0); 
//蓝色 
$blue=imagecolorallocate($im, 0, 0, 255); 
$color_arr=array($green,$blue,$red); 
$color=array_rand($color_arr); 
$text = '我靠这验证码太变态啦'; 
$textlen=iconv_strlen($text,'utf-8');//计算字符串长度 
//随机截取两个字符,变色显示 
$p1=rand(1,$textlen)-1; 
while(($p2=rand(1,$textlen)-1)==$p1); 
$w1=iconv_substr($text,$p1,1,'utf-8'); 
$w2=iconv_substr($text,$p1,1,'utf-8'); 
//字体文件 (PS:T不错的php Q扣?n:276167802,验证:csl) 
$font = 'simkai.ttf'; 
imagefilledrectangle($im, 0, 0, 399, 29, $white); 
for($i=0;$i<$textlen;$i++) 
{ 
if($i==$p1||$i==$p2) 
{ 
imagettftext($im, 15, 0, 20*($i-1)+20, 20, $color_arr[$color], $font, iconv_substr($text,$i,1,'utf-8')); 
} 
else 
{ 
imagettftext($im, 15, 0, 20*($i-1)+20, 20, $black, $font, iconv_substr($text,$i,1,'utf-8')); 
} 
} 
imagepng($im); 
imagedestroy($im); 
?>

验证码中的字符并不是同一种颜色,让用户输入指定颜色的验证码,这样安全性会更好的。
PHP 相关文章推荐
PHP 常见郁闷问题答解
Nov 25 PHP
PHP令牌 Token改进版
Jul 18 PHP
php URL编码解码函数代码
Mar 10 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
Oct 31 PHP
php实现的Cookies操作类实例
Sep 24 PHP
php链表用法实例分析
Jul 09 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
Apr 30 PHP
示例详解Laravel重置密码代码重构
Aug 10 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
PHP面相对象中的重载与重写
Feb 13 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 #PHP
用php简单实现加减乘除计算器
Jan 06 #PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 #PHP
浅析ThinkPHP中的pathinfo模式和URL重写
Jan 06 #PHP
php Calender(日历)代码分享
Jan 03 #PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 #PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
Jan 03 #PHP
You might like
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
PHP7多线程搭建教程
2017/04/21 PHP
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
理解JavaScript原型链
2016/10/25 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
深入理解node.js http模块
2018/01/24 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
vscode调试django项目的方法
2020/08/06 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
Koral官方网站:女性时尚运动服
2019/04/10 全球购物
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
骨干教师培训制度
2014/01/13 职场文书
最新创业融资计划书
2014/01/19 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
书法大赛策划方案
2014/06/04 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js