首頁 後端開發 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