当前位置:首页 > PHP教程 > php类库 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-28 22:02:27 浏览: 评论:0 

这篇文章主要介绍了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.   { 
  55.   $this->mDisturbColor = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,255), rand(0,255)); 
  56.   imagesetpixel($this->mCheckImage,rand(2,128),rand(2,38),$this->mDisturbColor); 
  57.   } 
  58. /** 
  59. * 
  60. * @brief  设置验证码图片的大小 
  61. * 
  62. * @param  $width  宽 
  63. * 
  64. * @param  $height 高 
  65. * 
  66. */ 
  67. public function SetCheckImageWH($width,$height
  68.  if($width==''||$height=='')return false; 
  69.  $this->mCheckImageWidth = $width
  70.  $this->mCheckImageHeight = $height
  71.  return true; 
  72. /** 
  73. * 
  74. * @brief  在验证码图片上逐个画上验证码 
  75. * 
  76. */ 
  77. private function WriteCheckCodeToImage() 
  78.   for ($i=0;$i<=$this->mCheckCodeNum;$i++) 
  79.   { 
  80.   $bg_color = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,128), rand(0,255)); 
  81.   $x = floor($this->mCheckImageWidth/$this->mCheckCodeNum)*$i
  82.   $y = rand(0,$this->mCheckImageHeight-15); 
  83.   imagechar ($this->mCheckImage, 5, $x$y$this->mCheckCode[$i], $bg_color); 
  84.   } 
  85. /** 
  86. * 
  87. * @brief  输出验证码图片 
  88. * 
  89. */ 
  90. public function OutCheckImage() 
  91.  $this ->OutFileHeader(); 
  92.  $this ->CreateCheckCode(); 
  93.  $this ->CreateImage(); 
  94.  $this ->SetDisturbColor(); 
  95.  $this ->WriteCheckCodeToImage(); 
  96.  imagepng($this->mCheckImage); 
  97.  imagedestroy($this->mCheckImage); 
  98. $c_check_code_image = new CCheckCodeFile(); 
  99. //$c_check_code_image ->SetCheckImageWH(100,50); 
  100. //设置显示验证码图片的尺寸 
  101. $c_check_code_image ->OutCheckImage(); 
  102. ?>

Tags: php验证码文件类

分享到: