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 相关文章推荐
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
Nov 01 PHP
php debug 安装技巧
Apr 30 PHP
php实现图片文件与下载文件防盗链的方法
Nov 03 PHP
php常用hash加密函数
Nov 22 PHP
Codeigniter中集成smarty和adodb的方法
Mar 04 PHP
php使用正则验证中文
Apr 06 PHP
PHP pear安装配置教程
May 14 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
PHP7 参数处理机制修改
Mar 09 PHP
详细分析PHP7与PHP5区别
Jun 26 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 adodb操作mysql数据库
2009/03/19 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
浅谈本地WAMP环境的搭建
2015/05/13 PHP
yii2.0实现验证用户名与邮箱功能
2015/12/22 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
thinkphp 表名 大小写 窍门
2015/02/01 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
python刷投票的脚本实现代码
2014/11/08 Python
简单说明Python中的装饰器的用法
2015/04/24 Python
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
python3.7 的新特性详解
2019/07/25 Python
ET Mall东森购物网:东森严选
2017/03/06 全球购物
Python的两道面试题
2013/06/29 面试题
大班幼儿评语大全
2014/04/30 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
详细介绍python操作RabbitMq
2022/04/12 Python