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 相关文章推荐
第七节 类的静态成员 [7]
Oct 09 PHP
ThinkPHP分页实例
Oct 15 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
Nov 04 PHP
php判断并删除空目录及空子目录的方法
Feb 11 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
PHP HTTP 认证实例详解
Nov 03 PHP
PHP MYSQL简易交互式站点开发
Dec 27 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
在Laravel中使用DataTables插件的方法
May 29 PHP
php提供实现反射的方法和实例代码
Sep 17 PHP
Yii框架小部件(Widgets)用法实例详解
May 15 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
extjs form textfield的隐藏方法
2008/12/29 Javascript
10个实用的脚本代码工具
2010/05/04 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
2013/05/15 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
Python学习小技巧之列表项的拼接
2017/05/20 Python
利用python模拟实现POST请求提交图片的方法
2017/07/25 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
深入理解Python中的super()方法
2017/11/20 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
python英语单词测试小程序代码实例
2019/09/09 Python
python创建学生成绩管理系统
2019/11/22 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
2020/10/18 Python
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
服务质量承诺书
2014/03/27 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
党员转正大会主持词
2015/07/02 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python