php验证码 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 。

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

// 5位数字

Image::buildImageVerify(5);

// 5位大写字母

Image::buildImageVerify(5, 2);

// 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 。

例子:

Public function verify(){

import("ORG.Util.Image");

Image::GBVerify();

}

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

82153da1da17026d95171df0749171d1.bmp

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

提示

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

Public function verify(){

Load('extend');

import("@.ORG.Image");

Image::GBVerify();

}

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot端口从默认更改为自定义或新端口

更改Spring Boot应用程序端口的快速指南。 application.properties文件和yml文件中的server.port属性的示例。 以及从命令行参数 SpringBootApplication,WebServerFactoryCustomizer 1.简介 在本教程中,您将学习如何在Spring Boot应用程序中更改端口。 …

java 开发人员工具_Java开发人员应该知道的5种错误跟踪工具

java 开发人员工具随着Java生态系统的发展,可满足不断增长的请求和用户对高性能需求的Web应用程序成为了新型的现代开发工具。 具有快速新部署的快速节奏环境需要跟踪错误,并以传统方法无法维持的水平获得对应用程序行为的洞察力。 在本文中,…

oracle定时关闭job,Oracle 定时JOB

讲一下Oracle创建临时job小窍门,创建Oracle临时JOB是为了临时执行调用过程或者函数,只调用一次。1、创建Oracle临时jobdeclareVJOB number;beginsys.dbms_job.submit(VJOB,‘PKG_RULECALL.MAKE_ALL_SAMPLE_BY_MONTH_WTH(‘‘201701‘‘,NULL);‘,Sysdat…

Apache Camel 3.2 – Camel的无反射配置

在Apache Camel项目中,我们正在努力开发下一个即将发布的下一个Apache Camel 3.2.0版本。 我们在Camel 3中努力研究的问题之一就是使其变得更小,更快。 其中一个方面是配置管理。 您可以按照12要素原则以多种方式完全配置Camel,以使配置与应…

oracle dbwr trace文件,ORA-01157: cannot identify/lock data file 19 - see DBWR trace file问题处理...

ORA-01157: cannot identify/lock data file 19 - see DBWR trace file问题处理告警信息:ORA-01157: cannot identify/lock data file 19 - see DBWR trace fileORA-01110: data file 19: /app/Oracle/oradata/users02.dbfORA-27037: unable to obtain file statusS…

java jsoup解析_3使用Jsoup解析Java中HTML文件的示例

java jsoup解析HTML是Web的核心,无论您是通过JavaScript,JSP,PHP,ASP或任何其他Web技术动态生成的,您在Internet上看到的所有页面都是基于HTML的。 您的浏览器实际上是解析HTML并为您呈现它。 但是,如果需要…

linux 命令解码空格,Shell 编程:Bash空格的那点事

先了解下bash中什么时候该用空格,什么时候不该用。1. 等号赋值两边不能有空格2. 命令与选项之间需要空格3. 管道两边空格可有可无我们来看看常见的问题1. 赋值时等号两边或者只有左边多了空格igigentoo ~ $ var1 testbash: var1: command not foundigigentoo ~ $ e…

使用类似Lambda的语法切换为Java中的表达式

从Java 14开始, switch表达式具有额外的Lambda式 ( case ... -> labels )语法,它不仅可以用作语句,还可以用作计算为单个值的表达式。 使用新的类似Lambda的语法,如果标签匹配,则仅执行箭头…

配置linux系统ip,Linux系统IP地址配置

命令临时配置ifconfig [Network card name] 10.50.6.16 netmask 255.255.254.0或者ip addr add 10.50.6.200/23 dev [Network card name]router add default gw 10.50.6.1 #添加默认路由重启后失效ip addr add命令添加的IP地址需要使用 ip a show [Network card name]命令查看例…

【AI提示词艺术】第12期 摄影艺术构图处理和人像生成的技巧

摄影艺术构图 星空宇宙 关键词: 强烈的明暗对比,8k,精细的描述,相片纸,超高分辨率,无建筑的,大自然,星空,云朵,刺眼流星,群星,银河,仰视视角,广角镜头 以下是按照提示词类别整理的相关描述&a…

超音速亚原子Enterprise Java

我创建了一个视频,其中用Quarkus(用于现代Java应用程序的运行时)解释“超音速亚原子Java”。 无论您是刚开始涉足Enterprise Java领域,还是已经是一位经验丰富的Java EE / J2EE开发人员,本课程都将指导您如何在2020年构…

linux 打包排除多个目录,tar打包整个目录(可排除子目录)几种方法

例1。压缩并打包目录tar -czf small.tar.gz small(目录名) ;例2。tar zcvf backup.tar.gz site/* –excludesite/attach –excludesite/images简单解释一下:ls -l | grep “^-” 用来把当前目录下所有文件列出来,不包括子目录;awk ‘{print …

Kogito,ergo规则:从知识到服务,轻松自如

欢迎阅读有关Kogito倡议的博客系列的另一集,以及我们将Drools带入云的努力。 这些文章的目的是收集用户对我们提供给Kogito的功能的早期反馈。 在本文中,我们介绍了两种实现完整智能服务的新方法 : 独立的规则服务 集成智能工作流程和规则…

linux系统io查看计算,Linux下查看进程IO工具iopp

Linux下的IO检测工具最常用的是iostat,不过iostat只能查看到总的IO情况。如果要细看具体那一个程序点用的IO较高,可以使用iotop 。不过iotop对内核版本和Python版本有要求,虽然目前主流的CentOS和Ubuntu版本上都适用。不过考虑到其无法适用的…

java 并发锁_Java并发教程–锁定:内在锁

java 并发锁在之前的文章中,我们回顾了在不同线程之间共享数据的一些主要风险(例如原子性和可见性 )以及如何设计类以安全地共享( 线程安全的设计 )。 但是,在许多情况下,我们将需要共享可变数据…

linux 命令 ppt,Linux基本命令()讲解.ppt

第2章 Linux 基本命令 2.1 系统管理命令 在 Linux/UNIX 操作系统中,所有事物都被当作文件来处理:硬件设备(包括键盘和终端)、目录、命令本身,当然还有文件。 实际上是 Linux/UNIX 的能力和灵活性的基础。Linux操作系统命令分为文件管理、文件…

Java14:使用Java 14的新记录联接数据库表

您是否知道可以使用Java 14的预览记录功能将数据库表连接到Java Stream中? 阅读这篇简短的文章,并了解如何使用Speedment Stream ORM完成它。 我们将从如何设置您的项目开始。 设定 下载Java 14 。 转到Speedment Initializer并下载您的项目骨架&#x…

linux 读取内存颗粒,Linux虚拟内存地址转化成物理内存地址

背景现代手机这种SOC(system on chip),因为功耗、Modem等功能soc上集成了很多core,他们还可以是独立的系统在运转。比如ADSP简介ADSP(Application Digital Signal Processing)就是高通的Hexagon DSP ,就是独立运转的一个coresystem。这样做不仅可以使用soc上的专用核…

primefaces_PrimeFaces扩展中的全新JSF组件

primefacesPrimeFaces扩展团队很高兴宣布即将推出的3.0.0主要版本的几个新组件。 我们的新提交者Francesco Strazzullo为该项目提供了“ Turbo Boost”,并带来了至少6个已成功集成的 JSF组件! 当前的开发状态是OpenShift上的deployet – 请查看展示柜。以…

linux数字设定法设定权限,Linux chmod命令详解和使用实例(改变文件或目录的访问权限)...

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。…