Maison développement back-end tutoriel 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 移动


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les sous-titres Stremio ne fonctionnent pas ; erreur lors du chargement des sous-titres Les sous-titres Stremio ne fonctionnent pas ; erreur lors du chargement des sous-titres Feb 24, 2024 am 09:50 AM

Les sous-titres ne fonctionnent pas sur Stremio sur votre PC Windows ? Certains utilisateurs de Stremio ont signalé que les sous-titres n'étaient pas affichés dans les vidéos. De nombreux utilisateurs ont signalé avoir rencontré un message d'erreur indiquant « Erreur de chargement des sous-titres ». Voici le message d'erreur complet qui apparaît avec cette erreur : Une erreur s'est produite lors du chargement des sous-titres. Échec du chargement des sous-titres : Cela pourrait être un problème avec le plugin que vous utilisez ou avec votre réseau. Comme l’indique le message d’erreur, il se peut que ce soit votre connexion Internet qui soit à l’origine de l’erreur. Veuillez donc vérifier votre connexion réseau et vous assurer que votre Internet fonctionne correctement. En dehors de cela, il peut y avoir d'autres raisons derrière cette erreur, notamment un module complémentaire de sous-titres conflictuels, des sous-titres non pris en charge pour un contenu vidéo spécifique et une application Stremio obsolète. comme

Programme C++ : réorganiser la position des mots par ordre alphabétique Programme C++ : réorganiser la position des mots par ordre alphabétique Sep 01, 2023 pm 11:37 PM

Dans ce problème, une chaîne est donnée en entrée et nous devons trier les mots apparaissant dans la chaîne par ordre lexicographique. Pour ce faire, nous attribuons un index commençant à 1 à chaque mot de la chaîne (séparés par des espaces) et obtenons le résultat sous forme d'index triés. String={"Hello","World"}"Hello"=1 "World"=2 Puisque les mots dans la chaîne d'entrée sont dans l'ordre lexicographique, la sortie imprimera "12". Examinons quelques scénarios d'entrée/résultat - en supposant que tous les mots de la chaîne d'entrée sont identiques, regardons les résultats - Entrée :{"hello","hello","hello"}Résultat : 3 Résultat obtenu

Comment utiliser Golang pour déterminer si un caractère est une lettre Comment utiliser Golang pour déterminer si un caractère est une lettre Dec 23, 2023 pm 04:09 PM

Implémentation de Golang : méthodes pour déterminer si un caractère est une lettre Dans Golang, il existe de nombreuses façons de déterminer si un caractère est une lettre. Cet article présentera plusieurs de ces méthodes couramment utilisées et fournira des exemples de code spécifiques pour chaque méthode. Méthode 1 : utilisez la fonction IsLetter du package Unicode Le package Unicode dans Golang fournit une fonction appelée IsLetter, qui peut déterminer si un caractère est une lettre. Cette fonction s'utilise comme suit : packagemaini

Comment utiliser Golang pour déterminer si un caractère est une lettre Comment utiliser Golang pour déterminer si un caractère est une lettre Dec 23, 2023 am 11:57 AM

Comment utiliser Golang pour déterminer si un caractère est une lettre. Dans Golang, déterminer si un caractère est une lettre peut être obtenu en utilisant la fonction IsLetter du package Unicode. La fonction IsLetter vérifie si le caractère donné est une lettre. Ensuite, nous présenterons en détail comment utiliser Golang pour écrire du code afin de déterminer si un caractère est une lettre. Tout d’abord, vous devez créer un nouveau fichier Go dans lequel écrire le code. Vous pouvez nommer le fichier « main.go ». code

Le code interne d'un caractère chinois nécessite plusieurs octets pour être stocké Le code interne d'un caractère chinois nécessite plusieurs octets pour être stocké Dec 14, 2020 pm 05:45 PM

Le code interne d'un caractère chinois nécessite 2 octets pour être stocké. Dans le système de caractères chinois populaire en Chine, le code interne d'un caractère chinois occupe 2 octets. Étant donné que le système de traitement des caractères chinois doit assurer la compatibilité entre les langues chinoises et occidentales, une ambiguïté se produira lorsque des codes ASCII et des codes standard nationaux de caractères chinois existent dans le système. ; À cette fin, le code interne des caractères chinois doit être traité de manière appropriée et transformé en code standard national.

Maîtriser les compétences de traitement PHP du transcodage des caractères chinois Maîtriser les compétences de traitement PHP du transcodage des caractères chinois Mar 28, 2024 pm 03:47 PM

PHP est un langage de script côté serveur largement utilisé pour le développement de sites Web. Lors du développement de sites Web, nous rencontrons souvent le besoin de transcoder les caractères chinois, notamment lorsqu'il s'agit de caractères chinois. Maîtriser les compétences de PHP dans le traitement du transcodage des caractères chinois peut efficacement éviter des problèmes tels que des caractères tronqués et améliorer la stabilité et l'expérience utilisateur du site Web. 1.Fonctions utf8_encode et utf8_decode En PHP, vous pouvez utiliser les fonctions utf8_encode et utf8_decode pour encoder et décoder les caractères chinois.

Compréhension approfondie du principe de conversion des caractères chinois en codage UTF-8 en PHP Compréhension approfondie du principe de conversion des caractères chinois en codage UTF-8 en PHP Mar 28, 2024 pm 02:44 PM

Le principe de conversion des caractères chinois en codage UTF-8 implique en réalité la notion de codage de caractères. Dans les ordinateurs, les caractères du texte doivent être représentés et stockés sous forme de nombres, et différents schémas de codage de caractères spécifient la correspondance entre les différents caractères et nombres. UTF-8 est une méthode de codage de caractères couramment utilisée. Elle prend en charge les caractères dans le monde entier et utilise une méthode de codage de longueur variable, qui peut représenter efficacement les caractères dans diverses langues et est particulièrement adaptée au jeu de caractères Unicode. En tant que langage de script côté serveur courant, PHP fournit également

Solution au problème de saisie des caractères chinois dans Win11 Solution au problème de saisie des caractères chinois dans Win11 Jan 05, 2024 am 08:29 AM

Après avoir installé le système Win11, nous devons d'abord installer la méthode de saisie chinoise Win11 pour saisir les caractères chinois. Si après l'installation de la méthode de saisie chinoise, nous ne parvenons toujours pas à saisir les caractères chinois, les services associés peuvent être désactivés. est un Levez-vous et jetez un œil. Que faire si win11 ne peut pas saisir de caractères chinois : 1. Tout d'abord, nous devons nous assurer que nous avons téléchargé et installé la méthode de saisie chinoise ou un logiciel de méthode de saisie tiers. 2. Si vous ne savez pas comment ajouter une méthode de saisie, vous pouvez consulter les didacticiels sur ce site. 3. Si vous ne parvenez toujours pas à saisir des caractères chinois après avoir ajouté la méthode de saisie, vous devez activer les services associés. 4. Tout d'abord, cliquez avec le bouton droit sur le menu Démarrer et recherchez "Gestion de l'ordinateur". 5. Entrez ensuite "Planificateur de tâches" - "Planificateur de tâches".

See all articles