• 专注于网站建设,网络推广,关键词优化,SEO优化,专业的网站建设开发团队!
首页 > IT技术 > PHP > 内容

ThinkPHP中验证码字体大小设置

2015-06-11 22:35:59   来源:叶景网络

         由于我比较喜欢大气的页面,在我的碧波君子Blog博客中登录界面也做得比较大气,但ThinkPHP系统默认的的验证码是比较小的字体,这样看起来就不怎么协调,因些本人把它Image.class.php文件改一把,把它的字体大小设置为24px,这样一来看起来舒服多了,呵呵,修改过程也比较简单,具体步骤如下文件所述:

打开ThinkPHP3.1.2的图片类 ThinkPHP.Lib.ORG.Util.Image.class.php 文件,找到buildImageVerify()方法。
完整的修改代码如下:

static function buildImageVerify($length=4, $mode=1, $type='png', $width=48, $height=22, $verifyName='verify') {
        $file = $file == "" ? dirname ( __PATH__ ) . "/Public/font/myfont.ttf" : $file;
        if (! is_file ( $file ))  return false;
        import('ORG.Util.String');
        $randval = String::randString($length, $mode);
        session($verifyName, md5($randval));
        $width = ($length * 10 + 10) > $width ? $length * 10 + 10 : $width;
        if ($type != 'gif' && function_exists('imagecreatetruecolor')) {
            $im = imagecreatetruecolor($width, $height);
        } else {
            $im = imagecreate($width, $height);
        }
        $r = Array(225, 255, 255, 223);
        $g = Array(225, 236, 237, 255);
        $b = Array(225, 236, 166, 125);
        $key = mt_rand(0, 3);
        $backColor = imagecolorallocate($im, $r[$key], $g[$key], $b[$key]);    //背景色(随机)
        $borderColor = imagecolorallocate($im, 100, 100, 100);                    //边框色
        imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor);
        imagerectangle($im, 0, 0, $width - 1, $height - 1, $borderColor);
        $stringColor = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));
        // 干扰
        for ($i = 0; $i < 10; $i++) {
            imagearc($im, mt_rand(-10, $width), mt_rand(-10, $height), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $stringColor);
        }
        for ($i = 0; $i < 25; $i++) {
            imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $stringColor);
        }
        // for ($i = 0; $i < $length; $i++) {
            // imagestring($im, 5, $i * 10 + 5, mt_rand(1, 8), $randval{$i}, $stringColor);
        // }
        for($i = 0; $i < $length; $i ++) {
               $fontcolor = imagecolorallocate ( $im, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) );
               imagettftext ( $im, 24, mt_rand ( 15, 30 ), $i * 20 + 10, mt_rand ( 20, 40 ), $fontcolor, $file, $randval {$i} );
        }
        Image::output($im, $type);
    }?
以上代码直接复制去用就可以了。
有两处修改:
一:添加了$file传参,用来定义文字文件位置,注:字体文件,也就是windows系统的C:\Windows\Fonts目录下的字体,复制一个你喜欢的类型,放到项目中,自己定义位置。
//放在公共目录下,
    $file = $file == "" ? dirname ( __PATH__ ) . "/Public/font/myfont.ttf" : $file;
    if (! is_file ( $file ))  return false;
二:去掉最后一个for()循环中,imagestring();实现为缩略图添加验证码文字
for($i = 0; $i < $length; $i ++) {
        $fontcolor = imagecolorallocate ( $im, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) );
        imagettftext ( $im, 24, mt_rand ( 15, 30 ), $i * 10 + 5, mt_rand ( 18, 23 ), $fontcolor, $file, $randval {$i} );
        //参数说明|imagettftext(图像资源,字体大小,文字的倾斜力度,文字出现的X坐标,文字出现的Y坐标,文字的颜色,文字字体位置,填充的文字内容);
}
这样就可以了,非常简单,如果觉得验证码不够灵动,可以调整imagettftext();函数里的参数。不同的TP版本可能有点差别,但都大同小异!

    本文由叶景网络原创,转载请标明出处!

叶景网络,网络推广,网站建设
特别推荐RECOMMEND
搜索引擎网站关键词seo优化的意义
视频推广怎么做
网站seo优化怎么做关键词排上首页?
SEO介绍什么叫搜索引擎网站关键词优化
seo优化怎样做提升关键词排名
热点图文Hot
PHP通过soap调用.net接口asmx文件 PHP通过soap调用.ne
PHP开发环境配置 PHP开发环境配置
wamp集成环境的虚拟域名配置方法 wamp集成环境的虚拟
wamp独立安装配置 wamp独立安装配置
关注排行RANKING
1

PHP通过soap调用.net接口asmx文件

PHP通过soap调用.net接口asmx文件 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

2

PHP开发环境配置

PHP开发环境配置 下载PHP安装程序,并解压缩。(下载页面为http: www php net downloads php,下...

3

wamp集成环境的虚拟域名配置方法

wamp集成环境的虚拟域名配置方法 最近,发现身边很多人用wamp集成环境,这个虽然比较快捷,一步到位,但是只能访...

4

wamp独立安装配置

wamp独立安装配置 apache 中的 httpd conf LoadModule php5_module "D: lamp php5 php5apache2_2 dll " 加载模块并开启

5

php 获取今天明天昨天时间戳

php 获取今天明天昨天时间戳 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

6

PHP获取服务器信息 MySql版本和浏览器信息

PHP获取服务器信息 MySql版本和浏览器信息 1、$_SESSION[ PHP_SELF ] -- 获取当前正在执行脚本的文件名 2...

7

smarty 截取字符串函数 truncate的用法

smarty 截取字符串函数 truncate的用法 smarty truncate 截取字符串,从字符串开始处截取某长度的字符,默认的长度为8...

8

php编程常用函数方法等

php编程常用函数方法等 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站...

9

如何让ThinkPHP的模板引擎达到最佳效率

如何让ThinkPHP的模板引擎达到最佳效率 默认情况下ThinkPHP框架系统默认使用的模板引擎是内置模板引擎。内置模板引擎支持模板文...