搜索
系统检测到您的用户名不符合规范:

验证码插件改进建议

浏览:588 发布日期:2018年02月27日 分类:ThinkPHP5专区
我根据tp5.1手册通过 composer 安装了验证码插件。使用过程中发现当修改验证码图片的高度后,文字有时会出现显示不全的问题。通过跟踪代码,发现该操作在将文字(英文)写入图片时,y 值用的是 字体大小 * 1.6。由于字体相当于固定值,那么当修改图片高度时,如果图片高图偏小,文字就会显示在图片外面。
所以我修改了 y 值计算方法,感觉显示效果比原来要好:} else {
$codeY = ($this->imageH - $this->fontSize)/2 + $this->fontSize; // 这是修改后的代码,默认要求图片高度大于字体的高度。
for ($i = 0; $i < $this->length; $i++) {
$code[$i] = $this->codeSet[mt_rand(0, strlen($this->codeSet) - 1)];
$codeNX += mt_rand($this->fontSize * 1.2, $this->fontSize * 1.6);
imagettftext($this->im, $this->fontSize, mt_rand(-10, 10), $codeNX, $codeY, $this->color, $this->fontttf, $code[$i]);
}
}
修改的文件:think-captcha/src/Captcha.php
修改前的效果:
修改后的效果:
配置参数:<?php
return [
// 图片高度
'imageH' => 30,
'imageW' => 100,
// 字体大小
'fontSize' => 20,
// 验证码长度(位数)
'length' => 2,
// 是否画混淆曲线
'useCurve' => false,
// 是否添加杂点
'useNoise' => false,
];
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
dclchj
积分:2138 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /