`
mixer_a
  • 浏览: 341854 次
社区版块
存档分类
最新评论

在ThinkPHP中生成中文验证码

 
阅读更多

在Perl和PHP中生成中文图片最关键的一点是需要设置一个可以显示中文的字体。

在Linux平台上,我们可以把windows下的雅黑文件拷过去。

在控制面板-字体里可以拷贝雅黑字体文件:

放在Ubuntu的/usr/share/fonts/vista下。

Perl的关键代码类似下面所示:

这样我们可以生成如下所示的图片:

————————————————————————————

在PHP中,也可以采用同样的方式生成包含中文的图片。在此以ThinkPHP框架中开发中文验证码为例:

ThinkPHP包含一个image类,里面有一个buildString方法可以生成所需的验证码,但是只限于数字和英文字符。同时这个方法的代码也有不少问题,例如参数没有$size、$font的传递,高度写死为22px等等。

所以我们可以自行实现一个image类或者方法,对这个方法进行一些改进:

最主要的一个改进是将:@imagestring($im, 5, 5, 5, $string, $color)

修改为@imagettftext($im, $size, $angel, $x, $y, $color, $font_path, $string)

$font无疑就是所需的字体路径,如果需要可以切换多个字体的话,可以加入判断:

关于随机中文字符的产生,可以调用ThinkPHP的ORG/Util/String类的rand_string方法。

生成的图片如下所示:

分享到:
评论

相关推荐

    ThinkPHP实现生成和校验验证码功能

    使用ThinkPHP实现生成/校验验证码功能,供大家参考,具体内容如下 ...控制器生成验证码代码: //验证码 function verifyImg(){ //验证码配置 $cfg = array( 'imageH' => 30, // 验证码图片高度 '

    thinkPHP3.1验证码的简单实现方法

    主要介绍了thinkPHP3.1验证码的简单实现方法,实例分析了thinkPHP3.1使用图形类生成验证码的相关技巧,需要的朋友可以参考下

    thinkphp5.1验证码及验证码验证功能的实现详解

    注:由于thinkphp5.1没有自带验证码,所以需要通过composer安装think-captcha 扩展包才能实现验证码 一、安装composer https://www.jb51.net/article/178346.htm 二、通过composer安装think-captcha 扩展包 打开命令...

    thinkphp3.2点击刷新生成验证码

    主要介绍了thinkphp3.2点击刷新生成验证码的相关资料,需要的朋友可以参考下

    Thinkphp极验滑动验证码实现步骤解析

    对于建站的筒子们来说;垃圾广告真是让人深恶痛绝; 为了清净;搞个难以识别的验证码吧;又被用户各种吐槽; 直到后来出现了极验这个滑动的验证码;...三:生成验证样式 /tpl/Home/Index/index.html

    ThinkPHP3.2.1图片验证码实现方法

    主要介绍了ThinkPHP3.2.1图片验证码实现方法,结合实例形式分析了thinkPHP3.2.1生成图片验证码过程中遇到的问题及相应的解决方法,具有一定参考借鉴价值,需要的朋友可以参考下

    ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例

    主要介绍了ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能,结合实例形式详细分析了thinkPHP5验证码具体定义、使用方法及点击刷新相关操作技巧,需要的朋友可以参考下

    thinkPHP中验证码的简单使用方法

    首先生成验证码,在action文件中,直接调用thinkphp中提供的方法即可生成,确保开启php的扩展 gd2 如下: class UserAction Model extends Model { /** * 显示验证码信息 */ public function verify() { ob_...

    thinkphp 验证码 的使用小结

    thinkPHP中Verify类可以支持验证码的生成和验证功能,本文就给大家简单讲解下verify类生成验证码以及验证功能的实现方法,希望大家能够喜欢。

    thinkPHP中验证码的简单实现方法

    本文实例讲述了thinkPHP中验证码的简单实现方法。分享给大家供大家参考,具体如下: 运行效果图如下: 1.php端生成验证码函数 public function verify(){ // 验证码 import(@.Util.Image); Image::...

    thinkphp3.2.3后台登录功能(包括验证码和缩略图的实现)

    thinkphp3.2.3后台登录功能,包括验证码,上传图片,以及缩略图的生成的实现!

    thinkPHP框架实现的短信接口验证码功能示例

    主要介绍了thinkPHP框架实现的短信接口验证码功能,涉及基于thinkPHP的ajax提交、随机数生成、短信接口调用、cookie操作等相关实现技巧,需要的朋友可以参考下

    详解ThinkPHP3.2.3验证码显示、刷新、校验

    ThinkPHP3.2.3验证码显示、刷新、校验 ,具体如下: 显示验证码 首先在Home/Controller下创建一个公共控制器... /* 生成验证码 */ public function verify() { $config = [ 'fontSize' => 19, // 验证码字体大小

    thinkphp整合系列

    thinkphp整合系列之短信验证码、订单通知、阿里云oss、phpmailer批量发送邮件、phpqrcode生成二维码、融云即时通讯在线聊天、tcpdf生成pdf文件、phpexcel生成excel文件、支付宝MD5加密方式扫码支付、微信扫码支付。

    php调用云片网接口发送短信

    thinkphp随机生成短信验证码 ,手机号,及key发送请求给云片。云片发送短信验证码到指定手机号。用户输入短信验证码。在由thinkphp判断验证码是否正确、验证码是否过期来验证验证码通过。 接口地址:...

    ThinkPHP3.2仿京东商城视频教程实战课程,ThinkPHP3.2开发大型商城项目实战视频

    6.网站上线并在QQ互联中创建一个APP 7.QQ登录集成完成 第十二天 1.后台分类筛选属性的添加 2.后台分类筛选属性修改完成 3.搜索页面中获取搜索的分类下的筛选属性 4.搜索页面价格与属性的获取完成 5.获取商品销量和...

    利用php生成验证码

    * 思路:创建验证码画布,生成并填充背景色,生成验证码内容/干扰像素点/线,填充到画布,输出。 */ $width = 100; $height = 30; $vcodelen = 4; $pointnum = 200; $linenum = 3; // 创建画布

Global site tag (gtag.js) - Google Analytics