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和ACCESS写聊天室(三)
Oct 09 PHP
php网页后退不再出现过期
Mar 08 PHP
PHP中用header图片地址 简单隐藏图片源地址
Apr 09 PHP
php adodb连接mssql解决乱码问题
Jun 12 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
php使用unset()删除数组中某个单元(键)的方法
Feb 17 PHP
twig里使用js变量的方法
Feb 05 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
php技巧小结【推荐】
Jan 19 PHP
PHP实现重载的常用方法实例详解
Oct 18 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
PHP数组访问常用方法解析
Sep 05 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
PHP设计聊天室步步通
2006/10/09 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
php实现模拟post请求用法实例
2015/07/11 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
2013/06/19 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
使用Javascript简单计算器
2018/11/17 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
2018/12/25 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
DataFrame中去除指定列为空的行方法
2018/04/08 Python
tensorflow 获取变量&amp;打印权值的实例讲解
2018/06/14 Python
pandas重新生成索引的方法
2018/11/06 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
自定义django admin model表单提交的例子
2019/08/23 Python
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
入党申请书自我鉴定
2013/10/12 职场文书
项目建议书范文
2014/05/12 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
2014年组织部工作总结
2014/11/14 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android