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 全文搜索和替换的实现代码
Jul 29 PHP
Php Cookie的一个使用注意点
Nov 08 PHP
php 操作符与控制结构
Mar 07 PHP
windows7下安装php的imagick和imagemagick扩展教程
Jul 04 PHP
php简单备份与还原MySql的方法
May 09 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
Thinkphp 5.0实现微信企业付款到零钱
Sep 30 PHP
PHP递归算法的简单实例
Feb 28 PHP
thinkphp5.1框架容器与依赖注入实例分析
Jul 23 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
基于laravel belongsTo使用详解
Oct 18 PHP
如何用PHP实现多线程编程
May 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
咖啡的传说和历史
2021/03/03 新手入门
php 中include()与require()的对比
2006/10/09 PHP
一步一步学习PHP(5) 类和对象
2010/02/16 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
一些被忽视的PHP函数(简单整理)
2010/04/30 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
2015/12/18 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
js控制文本框禁止输入特殊字符详解
2017/04/07 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
Python中set与frozenset方法和区别详解
2016/05/23 Python
Python中单例模式总结
2018/02/20 Python
python数据结构学习之实现线性表的顺序
2018/09/28 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
wxPython实现分隔窗口
2019/11/19 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
JMS中Topic和Queue有什么区别
2013/05/15 面试题
行政助理岗位职责范文
2013/12/03 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
python全面解析接口返回数据
2022/02/12 Python