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 相关文章推荐
在字符串中把网址改成超级链接
Oct 09 PHP
dedecms模版制作使用方法
Apr 03 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 PHP
php小技巧之过滤ascii控制字符
May 14 PHP
php中数字0和空值的区别分析
Jun 05 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
PHP写日志的实现方法
Nov 05 PHP
php不使用copy()函数复制文件的方法
Mar 13 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
浅析Yii2 GridView实现下拉搜索教程
Apr 22 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
PHP chr()函数讲解
Feb 11 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 mssql 数据库分页SQL语句
2008/12/16 PHP
drupal 代码实现URL重写
2011/05/04 PHP
PHP实现HTML生成PDF文件的方法
2014/11/07 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
再探JavaScript作用域
2014/09/24 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
python求众数问题实例
2014/09/26 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
Python实现图片识别加翻译功能
2019/12/26 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
Python range与enumerate函数区别解析
2020/02/28 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
学校文明单位申报材料
2014/05/06 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
计生工作先进事迹
2014/08/15 职场文书
2015年司法局工作总结
2015/05/22 职场文书
Python基础详解之描述符
2021/04/28 Python
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技