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 相关文章推荐
Uchome1.2 1.5 代码学习 common.php
Apr 24 PHP
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
解析PHP中常见的mongodb查询操作
Jun 20 PHP
php 启动报错如何解决
Jan 17 PHP
php实现httpclient类示例
Apr 08 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
yii2中的rules 自定义验证规则详解
Apr 19 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
php基于curl实现的股票信息查询类实例
Nov 11 PHP
php实现小程序支付完整版
Oct 09 PHP
Laravel 前端资源配置教程
Oct 18 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
关于Intype一些小问题的解决办法
2008/03/28 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
深入浅析php json 格式控制
2015/12/24 PHP
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
vue项目实现github在线预览功能
2018/06/20 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
pandas series序列转化为星期几的实例
2018/04/11 Python
python查看模块,对象的函数方法
2018/10/16 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
Python龙贝格法求积分实例
2020/02/29 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
公共场所禁烟标语
2014/06/25 职场文书
安全生产标语大全
2014/10/06 职场文书
财务统计员岗位职责
2015/04/14 职场文书
排球赛新闻稿
2015/07/17 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
学习计划是什么
2019/04/30 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
Java并发编程必备之Future机制
2021/06/30 Java/Android
入门学习Go的基本语法
2021/07/07 Golang