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实现图片简单上传
Oct 09 PHP
php mssql 分页SQL语句优化 持续影响
Apr 26 PHP
解析PHP对现有搜索引擎的调用
Jun 25 PHP
解析Extjs与php数据交互(增删查改)
Jun 25 PHP
PHP反向代理类代码
Aug 15 PHP
php保存信息到当前Session的方法
Mar 16 PHP
大家在抢红包,程序员在研究红包算法
Aug 31 PHP
Yii实现简单分页的方法
Apr 29 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 PHP
PHP基于swoole多进程操作示例
Aug 12 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中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
详解flask入门模板引擎
2018/07/18 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
python读取大文件越来越慢的原因与解决
2019/08/08 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
python中append函数用法讲解
2020/12/11 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
Yahoo的PHP面试题
2014/05/26 面试题
护理毕业生自荐信范文
2013/12/22 职场文书
银行员工职业规划范文
2014/01/21 职场文书
老公保证书范文
2014/04/29 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技