gpt4 book ai didi

非常实用的php验证码类

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章非常实用的php验证码类由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例为大家分享了php验证码类,供大家参考,具体内容如下 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
/**
  *
  * @author Administrator
  *
  */
class ValidateCode{
   
   private $width ;
   private $height ;
   private $codeNum ;
   private $img_resouce ;
   private $disturbColorNum ;
   private $checkCode ;
   
   function __construct( $width =80, $height =20, $codeNum =4) {
     $this ->width= $width ;
     $this ->height= $height ;
     $this ->codeNum= $codeNum ;
     $this ->checkCode= $this ->CreateCheckCode();
     $number = floor ( $width * $height /25);
     if ( $number >240- $codeNum ) {
       $this ->disturbColorNum=240- $codeNum ;
     } else {
       $this ->disturbColorNum= $number ;
     }
   }
   
   public function showImage( $fontpath = '' ) {
     //创建图像背景
     $this ->Img_resouce();
     //var_dump($img_resouce);
     //设置干扰元素
     $this ->setDistructcolor();
     //向图像中随机画出文本
     $this ->outputtext( $fontpath );
     //输出图像
     $this ->outputimage();
   }
   /**
    *
    *获取随机创建的验证码
    */
   public function getCheckCode(){
     
   }
   private function Img_resouce(){
     //创建一个真彩图像
     $this ->img_resouce=imagecreatetruecolor( $this ->width, $this ->height);
     //随机设置图像背景
     $backcolor =imagecolorallocate( $this ->img_resouce,rand(225,255),rand(225,255),rand(225,255));
     //填充颜色
     imagefill( $this ->img_resouce, 0, 0, $backcolor );
     //设置边框背景
     $border =imagecolorallocate( $this ->img_resouce, 0,0,0);
     //画一个矩形
     imagerectangle( $this ->img_resouce,0,0, $this ->width-1, $this ->height-1, $border );
   }
   private function setDistructcolor(){
     //绘画干扰点
     for ( $i = 0; $i < $this ->disturbColorNum; $i ++) {
       
       imagesetpixel( $this ->img_resouce, rand(1, $this ->width-2), rand(1, $this ->height-2), rand(0,255));
     }
     
     //绘画干扰线
     for ( $j = 0; $j <3; $j ++) {
       $linecolor =imagecolorallocate( $this ->img_resouce,rand(0,255),rand(0,255),rand(0,255));
       imagearc( $this ->img_resouce, rand(0, $this ->width), rand(0, $this ->height),
        rand(10, 225), rand(20, 150),
        55, 44, $linecolor );
     }
   }
   private function CreateCheckCode(){
     $code = '23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ' ;
     $string = '' ;
     for ( $i = 0; $i < $this ->codeNum; $i ++) {
       
       $char = $code {rand(0, strlen ( $code )-1)};
       $string .= $char ;
     }
     return $string ;
   }
   private function outputtext( $fontpath = '' ){
     for ( $i = 0; $i < $this ->codeNum; $i ++) {
       $fontcolor =imagecolorallocate( $this ->img_resouce, rand(0,128), rand(0, 128), rand(0, 128));
       if ( $fontpath == '' ) {
         
          $fontsize =rand(3, 5);
          $x = floor ( $this ->width/ $this ->codeNum)* $i +3;
          $y =rand(0, $this ->height-20);
          imagechar( $this ->img_resouce, $fontsize , $x , $y , $this ->checkCode{ $i }, $fontcolor );
     } else {
          $fontsize =rand(12, 16);
          $x = floor (( $this ->width-8)/ $this ->codeNum)* $i +8;
          $y =rand( $fontsize , $this ->height-15);
          imagettftext( $this ->img_resouce, $fontsize ,rand(-45,45), $x , $y , $fontcolor ,fontpath, $this ->checkCode{ $i });
        }
     }
   }
   private function outputimage() {
     
     if (imagetypes() & IMG_GIF) {
       header( "Content-type: image/gif" );
       imagegif( $this ->img_resouce);
     } else if (imagetypes() & IMG_JPEG) {
       header( "Content-type: image/jpeg" );
       imagejpeg( $this ->img_resouce);
     } else if (imagetypes() & IMG_PNG) {
       header( "Content-type: image/png" );
       imagepng( $this ->img_resouce);
     } else {
       echo "PHP不支持的类型" ;
     }
     
     
   }
   private function __destruct(){
     
     imagedestroy( $this ->img_resouce);
   }
}
?>

以上就是本文的全部内容,希望对大家的学习有所帮助.

最后此篇关于非常实用的php验证码类的文章就讲到这里了,如果你想了解更多关于非常实用的php验证码类的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com