PHP自定义大小验证码的方法详解


Posted in PHP onJune 07, 2013
<?php
function vCode($num=4,$size=20, $width=0,$height=0){ 
        !$width && $width = $num*$size*4/5+5; 
        !$height && $height = $size + 10; 
        // 去掉了 0 1 O l 等 
            $str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW"; 
            $code = ''; 
            for ($i=0; $i<$num; $i++){ 
                    $code.= $str[mt_rand(0, strlen($str)-1)]; 
            } 
            // 画图像 
            $im = imagecreatetruecolor($width,$height); 
            // 定义要用到的颜色 
            $back_color = imagecolorallocate($im, 235, 236, 237); 
            $boer_color = imagecolorallocate($im, 118, 151, 199); 
            $text_color = imagecolorallocate($im, mt_rand(0,200), mt_rand(0,120), mt_rand(0,120));             // 画背景 
        imagefilledrectangle($im,0,0,$width,$height,$back_color); 
            // 画边框 
            imagerectangle($im,0,0,$width-1,$height-1,$boer_color); 
            // 画干扰线 
            for($i=0;$i<5;$i++){ 
                    $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); 
                imagearc($im,mt_rand(-$width,$width),mt_rand(-$height,$height),mt_rand(30,$width*2),mt_rand(20,$height*2),mt_rand(0,360),mt_rand(0,360),$font_color); 
                } 
        // 画干扰点 
        for($i=0;$i<50;$i++){ 
                $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); 
                imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$font_color); 
        } 
        // 画验证码 
        @imagefttext($im, $size , 0, 5, $size+3, $text_color, 'c://WINDOWS//Fonts//simsun.ttc',$code); 
        header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate"); 
        header("Content-type: image/png"); 
        imagepng($im); 
        imagedestroy($im); 
} 
?>

函数描述及例子:
<?
// 4个字符,大小为20
vCode(4,20);
?>
PHP 相关文章推荐
用PHP调用Oracle存储过程的方法
Sep 12 PHP
PHP 程序授权验证开发思路
Jul 09 PHP
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
php网站来路获取代码(针对搜索引擎)
Jun 08 PHP
PHP随机数生成代码与使用实例分析
Apr 08 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 PHP
php数组合并与拆分实例分析
Jun 12 PHP
PHP 中常量的知识整理
Apr 14 PHP
PHP7 mongoDB扩展使用的方法分享
May 02 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 PHP
如何用php生成扭曲及旋转的验证码图片
Jun 07 #PHP
利用php获取服务器时间的实现代码
Jun 07 #PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 #PHP
PHP5常用函数列表(分享)
Jun 07 #PHP
深入理解php的MySQL连接类
Jun 07 #PHP
PHP之生成GIF动画的实现方法
Jun 07 #PHP
深入HTTP响应状态码速查表的详解
Jun 07 #PHP
You might like
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
PHP页面输出时js设置input框的选中值
2016/09/30 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
Javascript的并行运算实现代码
2010/11/19 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
javascript自动生成包含数字与字符的随机字符串
2015/02/09 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
Python处理CSV与List的转换方法
2018/04/19 Python
python selenium循环登陆网站的实现
2019/11/04 Python
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
美国轮胎网站:Priority Tire
2018/11/28 全球购物
中学教师请假制度
2014/02/03 职场文书
青年教师培训方案
2014/02/06 职场文书
阳光体育活动总结
2014/04/30 职场文书
爱护花草树木的标语
2014/06/11 职场文书
营销学习心得体会
2014/09/12 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
学校重阳节活动总结
2015/03/24 职场文书