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 相关文章推荐
smarty实例教程
Nov 19 PHP
php面向对象全攻略 (一) 面向对象基础知识
Sep 30 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
php修改指定文件后缀的方法
Sep 11 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
Mar 19 PHP
PHP数组和explode函数示例总结
May 08 PHP
Codeigniter的dom类用法实例
Jun 26 PHP
Symfony2安装第三方Bundles实例详解
Feb 04 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 17 PHP
laravel5.1框架model类查询的实现方法
Oct 08 PHP
PHP 对象接口简单实现方法示例
Apr 13 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脚本
2006/11/26 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
2017/03/01 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
webpack开发环境和生产环境的深入理解
2018/11/08 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
python实现求最长回文子串长度
2018/01/22 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
对Python 数组的切片操作详解
2018/07/02 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
比利时香水网上商店:NOTINO
2018/03/28 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
关爱女孩行动实施方案
2014/03/13 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
现役军人家属慰问信
2015/03/24 职场文书
青年教师听课心得体会
2016/01/15 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
公司周年庆寄语
2019/06/21 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS