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 discuz 主题表和回帖表的设计
Mar 13 PHP
Godaddy空间Zend Optimizer升级方法
May 10 PHP
简单的PHP多图上传小程序代码
Jul 17 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
ThinkPHP中的关联模型注意点
Jun 16 PHP
wampserver改变默认网站目录的办法
Aug 05 PHP
php无限分类使用concat如何实现
Nov 05 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
php对象工厂类完整示例
Aug 09 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
Mar 07 PHP
PHP常量define和const的区别详解
May 18 PHP
open_basedir restriction in effect. 原因与解决方法
Mar 14 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正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
vue 请求后台数据的实例代码
2017/06/22 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
详解如何运行vue项目
2019/04/15 Javascript
python实现文件快照加密保护的方法
2015/06/30 Python
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
python对于requests的封装方法详解
2019/01/03 Python
Django model update的多种用法介绍
2020/03/28 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
上班离岗检讨书
2014/01/27 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python
Python数据分析之pandas函数详解
2021/04/21 Python
详解Spring事件发布与监听机制
2021/06/30 Java/Android
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
Golang中channel的原理解读(推荐)
2021/10/16 Golang