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 身份证号验证函数
May 07 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
Apr 09 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
PHP正则表达式入门教程(推荐)
May 18 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
PHP处理数组和XML之间的互相转换
Jun 02 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
Oct 18 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP __call()方法实现委托示例
May 20 PHP
PHP实现随机发放扑克牌
Apr 21 PHP
PHP7 整型处理机制修改
Mar 09 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
多重?l件?合查?(一)
2006/10/09 PHP
php读取xml实例代码
2010/01/28 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
2015/09/15 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
Angular4 ElementRef的应用
2018/02/26 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
vue项目查看vue版本及cli版本的实现方式
2020/10/24 Javascript
最大K个数问题的Python版解法总结
2016/06/16 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
应届生服装设计自我评价
2013/09/20 职场文书
招股说明书范本
2014/05/06 职场文书
2014年销售工作总结
2014/12/01 职场文书
文明家庭事迹材料
2014/12/20 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js
python数据处理之Pandas类型转换
2022/04/28 Python
Hive常用日期格式转换语法
2022/06/25 数据库