热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php改验证码位置,修改thinkphp验证码类,使之字符位置自适应。

thinkphp是国内非常流行的php框架,因丰富的功能,完善的开发文档颇受phper喜爱。thinkphp中集成了很多非常好用的工具类。其中验证码类就

thinkphp是国内非常流行的php框架,因丰富的功能,完善的开发文档颇受phper喜爱。thinkphp中集成了很多非常好用的工具类。

其中验证码类就是日常使用频率很高的功能,但是在验证码图片宽度很大的时候,会出现字符非常紧凑的情况,很影响美观,如下图:

6304a00f5d260ac9ae7cb02e5d5c30a4.png

于是想着修改下代码,让字符能尽量分散居中,首先计算下X轴上字符的位置。

4417df01c27f5531575b12ecb14a714b.png

然后打开文件,简单修改下代码。

43186cce391866ebc58bb2a6243b2550.png

for ($i = 0; $ilength; $i++) {

$code[$i] = $this->codeSet[mt_rand(0, strlen($this->codeSet)-1)];

//$codeNX += mt_rand($this->fontSize*1.2, $this->fontSize*1.6);修改前

// 优化字符x轴位置 by luz

$codeNX = (($this->imageW / $this->length) / 2 ) * ((2 * ($i + 1)) - 1);//修改后

imagettftext($this->_image, $this->fontSize, mt_rand(-40, 40), $codeNX,$this->fontSize*1.6,$this->_color,$this->fontttf, $code[$i]);

}

然后看下效果:

d7a9819ad812febca401095245673e3e.png

ae554a0cc637fe9d52eefe221693d681.png

这样修改只是为了好看,验证码位置应该是随机的。



推荐阅读
author-avatar
我喜欢吕继宏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有