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 相关文章推荐
使用bcompiler对PHP文件进行加密的代码
Aug 29 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
php explode函数实例代码
Feb 27 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
May 10 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
PHP实现的观察者模式实例
Jun 21 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
laravel 去掉index.php伪静态的操作方法
Oct 12 PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 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打造属于自己的MVC框架
2012/03/07 PHP
PHP实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
Nuxt的路由动画效果案例
2020/11/06 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
Python实现发送email的几种常用方法
2014/08/18 Python
python中日期和时间格式化输出的方法小结
2015/03/19 Python
python根据出生日期获得年龄的方法
2015/03/31 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
python版本五子棋的实现代码
2018/12/11 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
Pycharm小白级简单使用教程
2020/01/08 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
Python中bisect的用法及示例详解
2020/07/20 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
本科毕业生自我鉴定
2013/11/02 职场文书
高一生物教学反思
2014/01/17 职场文书
电子商务专业求职信
2014/07/10 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
个人存款证明书
2014/10/18 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python
vue3中provide && inject的使用
2021/07/01 Vue.js
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers