首页 > 开发 > PHP > 正文

php实现的验证码文件类实例

2024-05-04 23:36:31
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php实现的验证码文件类,实例分析了php生成验证码文件的技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了php实现的验证码文件类。分享给大家供大家参考。具体如下:

 

 
  1. <?php 
  2. /** 
  3. * @file 
  4. * @version 1.0 
  5. * @author 网海浪子 
  6. * @brief 验证码文件类 
  7. * 
  8. */ 
  9. class CCheckCodeFile 
  10. //验证码位数 
  11. private $mCheckCodeNum = 4; 
  12. //产生的验证码 
  13. private $mCheckCode = ''
  14. //验证码的图片 
  15. private $mCheckImage = ''
  16. //干扰像素 
  17. private $mDisturbColor = ''
  18. //验证码的图片宽度 
  19. private $mCheckImageWidth = '80'
  20. //验证码的图片宽度 
  21. private $mCheckImageHeight = '20'
  22. /** 
  23. * 
  24. * @brief 输出头 
  25. * 
  26. */ 
  27. private function OutFileHeader() 
  28. header ("Content-type: image/png"); 
  29. /** 
  30. * 
  31. * @brief 产生验证码 
  32. * 
  33. */ 
  34. private function CreateCheckCode() 
  35. $this->mCheckCode = strtoupper(substr(md5(rand()),0,$this->mCheckCodeNum)); 
  36. return $this->mCheckCode; 
  37.  
  38. /** 
  39. * 
  40. * @brief 产生验证码图片 
  41. * 
  42. */ 
  43. private function CreateImage() 
  44. $this->mCheckImage = @imagecreate ($this->mCheckImageWidth,$this->mCheckImageHeight); 
  45. imagecolorallocate ($this->mCheckImage, 200, 200, 200); 
  46. return $this->mCheckImage; 
  47. /** 
  48. * 
  49. * @brief 设置图片的干扰像素 
  50. * 
  51. */ 
  52. private function SetDisturbColor() 
  53. for ($i=0;$i<=128;$i++) 
  54. $this->mDisturbColor = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,255), rand(0,255)); 
  55. imagesetpixel($this->mCheckImage,rand(2,128),rand(2,38),$this->mDisturbColor); 
  56. /** 
  57. * 
  58. * @brief 设置验证码图片的大小 
  59. * 
  60. * @param $width 宽 
  61. * 
  62. * @param $height 高 
  63. * 
  64. */ 
  65. public function SetCheckImageWH($width,$height
  66. if($width==''||$height=='')return false; 
  67. $this->mCheckImageWidth = $width
  68. $this->mCheckImageHeight = $height
  69. return true; 
  70. /** 
  71. * 
  72. * @brief 在验证码图片上逐个画上验证码 
  73. * 
  74. */ 
  75. private function WriteCheckCodeToImage() 
  76. for ($i=0;$i<=$this->mCheckCodeNum;$i++) 
  77. $bg_color = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,128), rand(0,255)); 
  78. $x = floor($this->mCheckImageWidth/$this->mCheckCodeNum)*$i
  79. $y = rand(0,$this->mCheckImageHeight-15); 
  80. imagechar ($this->mCheckImage, 5, $x$y$this->mCheckCode[$i], $bg_color); 
  81. /** 
  82. * 
  83. * @brief 输出验证码图片 
  84. * 
  85. */ 
  86. public function OutCheckImage() 
  87. $this ->OutFileHeader(); 
  88. $this ->CreateCheckCode(); 
  89. $this ->CreateImage(); 
  90. $this ->SetDisturbColor(); 
  91. $this ->WriteCheckCodeToImage(); 
  92. imagepng($this->mCheckImage); 
  93. imagedestroy($this->mCheckImage); 
  94. $c_check_code_image = new CCheckCodeFile(); 
  95. //$c_check_code_image ->SetCheckImageWH(100,50); 
  96. //设置显示验证码图片的尺寸 
  97. $c_check_code_image ->OutCheckImage(); 
  98. ?> 

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表