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 相关文章推荐
ThinkPHP框架设计及扩展详解
Nov 25 PHP
PHP 实现判断用户是否手机访问
Jan 21 PHP
PHP定时执行任务实现方法详解(Timer)
Jul 30 PHP
Yii视图CGridView列表用法实例分析
Jul 12 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
PHP计算近1年的所有月份
Mar 13 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
php数据结构之顺序链表与链式线性表示例
Jan 22 PHP
PHP实现微信申请退款功能
Oct 01 PHP
PHP中ltrim()函数的用法与实例讲解
Mar 28 PHP
Laravel实现ORM带条件搜索分页
Oct 24 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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 数组教程 定义数组
2009/10/23 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
javascript jq 弹出层实例
2013/08/25 Javascript
再探JavaScript作用域
2014/09/24 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
Python通过命令开启http.server服务器的方法
2017/11/04 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
python如何统计代码运行的时长
2019/07/24 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
如何基于Python实现自动扫雷
2020/01/06 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
python sleep和wait对比总结
2021/02/03 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
群胜软件Java笔试题
2012/09/29 面试题
vue+django实现下载文件的示例
2021/03/24 Vue.js
口腔医学技术应届生求职信
2013/11/09 职场文书
医院门卫岗位职责
2013/12/30 职场文书
教师师德师风整改措施
2014/10/24 职场文书
就业意向协议书
2015/01/29 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
2021/05/26 Python