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 相关文章推荐
Discuz 模板语句分析及知识技巧
Aug 21 PHP
PHP中文件上传的一个问题
Sep 04 PHP
常用的PHP数据库操作方法(MYSQL版)
Jun 08 PHP
php截取后台登陆密码的代码
May 05 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
php创建无限级树型菜单
Nov 05 PHP
关于php中的json_encode()和json_decode()函数的一些说明
Nov 20 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
Laravel向公共模板赋值方法总结
Jun 25 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 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
德生PL330的评价与改造
2021/03/02 无线电
PHP setTime 设置当前时间的代码
2012/08/27 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
基于PHP常用文件函数和目录函数整理
2017/08/17 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
python分布式计算dispy的使用详解
2019/12/22 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
澳大利亚在线时尚精品店:Hello Molly
2018/02/26 全球购物
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
汽车专业毕业生自荐信
2013/11/03 职场文书
技校生自我鉴定
2013/12/08 职场文书
七夕情人节促销方案
2014/06/07 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server