首页 后端开发 php教程 验证码PHP类 支持数字,字母,汉字,混合

验证码PHP类 支持数字,字母,汉字,混合

Jul 25, 2016 am 08:46 AM

  1. // +------------------------------------------------------------------------
  2. // 验证码类,该类的对象能动态获取验证码图片,验证码字符保存在SESSION['code']中
  3. // +------------------------------------------------------------------------
  4. // 支持4种格式 数字 字母 汉字 混合
  5. // +------------------------------------------------------------------------
  6. // @Author: HelloChina(sanzi0930@163.com)
  7. // +------------------------------------------------------------------------
  8. // @Date: 2012年6月7日11:03:00
  9. // +------------------------------------------------------------------------
  10. // @version 1.0
  11. // +------------------------------------------------------------------------
  12. class Vcode{
  13. protected $width; //验证码宽度
  14. protected $height; //验证码长度
  15. protected $codeNum; //验证码字符个数
  16. protected $codeType; //验证码类型
  17. protected $fontSize; //字符大小
  18. protected $fontType; //字体类型
  19. protected $codeStr; //中文内容
  20. protected $strNum; //中文个数
  21. protected $imageType; //输出图片类型
  22. protected $image; //图片资源
  23. protected $checkCode; //验证码内容
  24. /**
  25. +--------------------------------------------------------------------------------
  26. * 取得验证码信息
  27. +--------------------------------------------------------------------------------
  28. * @param integer $width 验证码宽度
  29. * @param integer $height 验证码高度
  30. * @param integer $codeNum 验证码字符个数
  31. * @param integer $codeType 验证码字符类型 1为数字 2为字母 3为汉字 4为混编
  32. * @param integer $fontSize 验证码字体的大小
  33. * @param string $fontType 验证码字体类型
  34. * @param string $imageType 验证码输出图片类型
  35. * @param string $codestr 中文验证码内容
  36. +--------------------------------------------------------------------------------
  37. */
  38. public function __construct($width=100, $height=50, $codeNum=4, $codeType=4, $fontSize=12, $fontType='heiti.ttf' ,$imageType='jpeg', $codeStr='去我饿人他一哦平啊是的飞个好就看了在想才吧你吗'){
  39. $this->width = $width;
  40. $this->height = $height;
  41. $this->codeNum = $codeNum;
  42. $this->codeType = $codeType;
  43. $this->fontSize = $fontSize;
  44. $this->fontType = $fontType;
  45. $this->codeStr = $codeStr;
  46. $this->strNum = strlen($this->codeStr)/3-1;
  47. $this->imageType = $imageType;
  48. $this->checkCode = $this->getCheckCode();
  49. }
  50. //+--------------------------------------------------------------------------------
  51. //* 生成验证码字符
  52. //+--------------------------------------------------------------------------------
  53. //* @return string
  54. //+--------------------------------------------------------------------------------
  55. public function __toString(){
  56. $string = implode('', $this->getCheckCode());
  57. $_SESSION["code"]=$string; //加到session中
  58. $this->getImage(); //输出验证码
  59. return '';
  60. }
  61. protected function getCheckCode(){
  62. $string = array();
  63. switch($this->codeType){
  64. case 1:
  65. //数字字符串
  66. $string = array_rand(range(0,9), $this->codeNum);
  67. break;
  68. case 2:
  69. //大字母字符串
  70. $string = array_rand(array_flip(range('A', 'Z')), $this->codeNum);
  71. break;
  72. case 3:
  73. //汉字字符串
  74. for($i=0; $icodeNum); $i++){
  75. $start = mt_rand(0, $this->strNum);
  76. $string[$i]= self::msubstr($this->codeStr,$start);
  77. }
  78. break;
  79. case 4:
  80. //混合字符串
  81. for($i=0; $icodeNum); $i++){
  82. $rand=mt_rand(0,2);
  83. switch($rand){
  84. case 0:
  85. $ascii = mt_rand(48,57);
  86. $string[$i] = sprintf('%c',$ascii);
  87. break;
复制代码

验证码, PHP
本主题由 小贝 于 2015-11-18 08:23 移动


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Stremio字幕不工作;加载字幕时出错 Stremio字幕不工作;加载字幕时出错 Feb 24, 2024 am 09:50 AM

字幕在你的WindowsPC上不能在Stremio上运行吗?一些Stremio用户报告说,视频中没有显示字幕。许多用户报告说遇到了一条错误消息,上面写着“加载字幕时出错”。以下是与此错误一起显示的完整错误消息:加载字幕时出错加载字幕失败:这可能是您正在使用的插件或您的网络有问题。正如错误消息所说,可能是您的互联网连接导致了错误。因此,请检查您的网络连接,并确保您的互联网工作正常。除此之外,这个错误的背后可能还有其他原因,包括字幕加载项冲突、特定视频内容不支持字幕以及Stremio应用程序过时。如

C++程序:按字母顺序重新排列单词的位置 C++程序:按字母顺序重新排列单词的位置 Sep 01, 2023 pm 11:37 PM

在这个问题中,一个字符串被作为输入,我们必须按字典顺序对字符串中出现的单词进行排序。为此,我们为字符串中的每个单词(之间用空格区分)分配一个从1开始的索引,并以排序索引的形式获得输出。String={“Hello”,“World”}“Hello”=1“World”=2由于输入字符串中的单词已按字典顺序排列,因此输出将打印为“12”。让我们看看一些输入/结果场景-假设输入字符串中的所有单词都相同,让我们看看结果-Input:{“hello”,“hello”,“hello”}Result:3获得的结

使用Golang判断一个字符是否为字母的方法 使用Golang判断一个字符是否为字母的方法 Dec 23, 2023 pm 04:09 PM

Golang实现:判断字符是否为字母的方法在Golang中,有多种方法可以判断一个字符是否为字母。本文将介绍其中几种常用的方法,并为每种方法提供具体的代码示例。方法一:使用Unicode包的IsLetter函数Golang中的Unicode包提供了一个名为IsLetter的函数,可以判断一个字符是否为字母。该函数的使用方法如下:packagemaini

如何使用Golang判断一个字符是否为字母 如何使用Golang判断一个字符是否为字母 Dec 23, 2023 am 11:57 AM

如何使用Golang判断一个字符是否为字母在Golang中,判断一个字符是否为字母可以通过使用Unicode包中的IsLetter函数来实现。IsLetter函数会检查给定的字符是否是一个字母。接下来,我们将详细介绍如何使用Golang编写代码来判断一个字符是否为字母。首先,你需要创建一个新的Go文件,用于编写代码。你可以将文件命名为"main.go"。代码

一个汉字的机内码需要几个字节储存 一个汉字的机内码需要几个字节储存 Dec 14, 2020 pm 05:45 PM

一个汉字的机内码需要2个字节储存。在国内流行的汉字系统中,一个汉字的机内码占2个字节,因为汉字处理系统要保证中西文的兼容,当系统中同时存在ASCII码和汉字国标码时,将会产生二义性;为此,汉字机内码应对国标码加以适当处理和变换。

掌握 PHP 处理汉字转码的技巧 掌握 PHP 处理汉字转码的技巧 Mar 28, 2024 pm 03:47 PM

PHP是一种广泛使用的服务器端脚本语言,常用于网站开发。在网站开发过程中,经常会遇到对汉字进行转码的需求,特别是在处理中文字符时。掌握PHP处理汉字转码的技巧,能够有效避免乱码等问题,提高网站的稳定性和用户体验。1.utf8_encode和utf8_decode函数在PHP中,可以使用utf8_encode和utf8_decode函数进行汉字的编码和解码操

深入了解PHP中汉字转UTF-8编码的原理 深入了解PHP中汉字转UTF-8编码的原理 Mar 28, 2024 pm 02:44 PM

汉字转UTF-8编码的原理实际上涉及到字符编码的概念。在计算机中,文字字符需要以数字的形式进行表示和存储,而不同的字符编码方案规定了不同字符到数字之间的对应关系。UTF-8是一种常用的字符编码方式,它支持全球范围内的字符,并且采用可变长度的编码方式,能够有效地表示各种语言的字符,特别适用于Unicode字符集。PHP作为一种常见的服务器端脚本语言,也提供了对

win11汉字输入问题解决方法 win11汉字输入问题解决方法 Jan 05, 2024 am 08:29 AM

我们在安装win11系统之后,首先必须要安装win11中文输入法才能打出汉字,如果在安装中文输入法之后,还是无法打出汉字,那么可能是相关服务被禁用了,将它重启即可,下面就一起来看一下吧。win11打不出汉字怎么办:1、首先我们要确保自己已经下载安装了中文输入法,或者第三方输入法软件。2、如果大家不知道如何添加输入法的话,可以查看本站的教程。3、如果添加完输入法,还是无法打汉字,那么就需要开启相关服务了。4、首先右键开始菜单,找到其中的“计算机管理”5、然后依次进入“任务计划程序”-“任务计划程序

See all articles