PHP头条
热点:

ThinkPHP使用不同风格及中文的验证码


使用其他风格验证码

在上文《ThinkPHP 验证码详解及实例》中了解了 ThinkPHP
验证码的具体用法,本文将进一步介绍如何使用不同风格的验证码以及使用中文验证码。

上文例子使用的是默认参数,也就是生成 4 位的数字验证码。buildImageVerify 方法生成验证码时,根据不同参数,可以生成不同风格的验证码。

buildImageVerify()

buildImageVerify
方法语法如下:

buildImageVerify(length, mode, type, width, height,
verifyName)

参数说明: 参数 说明

length 验证码字符个数,默认为 4 位。
mode 验证码字符类型,默认为数字。其他支持类型有:0字母 1数字 2大写字母
3小写字母 4中文 5混合(去掉了容易混淆的字符oOLl和数字01)。
type 验证码的图片类型,默认为 png 。
width 验证码图片的宽度,默认根据验证码长度自动计算。
height 验证码图片的高度,默认为 22px 。
verifyName 验证码的 SESSION 注册名称,默认为 verify


因此可以根据参数构造出其他风格的验证码,如:




  1. // 5位数字
  2. Image::buildImageVerify(5);
  3. // 5位大写字母
  4. Image::buildImageVerify(5, 2);
  5. // 6位大小写字母与数字混合
  6. Image::buildImageVerify(6, 5);

中文验证码

buildImageVerify
方法不支持中文验证码的显示,要使用中文验证码,需要使用 GBVerify
方法。
buildImageVerify()

buildImageVerify
方法语法如下:

GBVerify(length, type, width, height, fontface,
verifyName)

参数说明: 参数 说明

length 验证码字符个数,默认为 4 位。
type 验证码的图片类型,默认为 png 。
width 验证码图片的宽度,默认根据验证码长度自动计算。
height 验证码图片的高度,默认为 50px 。
fontface
使用的字体文件,使用包含路径的完整文件名或者将字体文件放到图像类(Image.class.php)同目录下,默认使用的字体文件是 simhei.ttf (存在于
windows 的 Fonts 目录下)。
verifyName
验证码的 SESSION 注册名称,默认为 verify 。

例子:




  1. Public function verify(){
  2. import("ORG.Util.Image");
  3. Image::GBVerify();
  4. }

如果一切正常,验证码显示如下:



ThinkPHP中文验证码示例

如果数字英文的验证码能正常显示而不能显示中文验证码,那很可能是没有读取到正确的字体文件。将
simhei.ttf 文件拷贝至 Image.class.php
同目录(ThinkPHP目录/Lib/ORG/Util/)下即可。

提示

如果导入的是当前项目下的 Image 类库,那么需要加载
ThinkPHP 扩展库,否则会报语法错误(Call to undefined function rand_string()):




  1. Public function verify(){
  2. Load('extend');
  3. import("@.ORG.Image");
  4. Image::GBVerify();
  5. }

同时,simhei.ttf 文件也要拷贝至
Image.class.php 同目录(项目目录/Lib/ORG/)下。

ThinkPHP
验证码目前不支持大小写英文混合(无数字)以及中英文混合的验证码

www.phpzy.comtrue/phpkj/12171.htmlTechArticleThinkPHP使用不同风格及中文的验证码 使用其他风格验证码 在上文《ThinkPHP 验证码详解及实例》中了解了 ThinkPHP 验证码的具体用法,本文将进一步介绍如何使用不同风格的验证码以及使...

相关文章

相关频道:

PHP之友评论

今天推荐