天天看点

个人技术作品 - PHP 验证码生成类

cls.ValidateNumber.php 

个人技术作品 - PHP 验证码生成类

<? php

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

class  ImgCode

个人技术作品 - PHP 验证码生成类

{

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $BackGround   =   false ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $BackColor   =   ' #FFFFFF ' ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $OnlyKey   =   false ;

个人技术作品 - PHP 验证码生成类

     public   $OnlyKeyWay   =   0 ;

个人技术作品 - PHP 验证码生成类

     public   $OnlyKeySeed   =   ' MD5 ' ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $KeyOutPutEncrypt   =   false ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $OutPutWay   =   0 ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $SID   =   '' ;

个人技术作品 - PHP 验证码生成类

     public   $OutPutText   =   '' ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $arlFont   =   array ( ' 1.ttf ' , ' 2.ttf ' , ' 3.ttf ' , ' 4.ttf ' );

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     private   $Image   =   '' ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $NoisePosition   =   false ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $FontSize   =   0 ;

个人技术作品 - PHP 验证码生成类

     public   $BuildLen   =   4 ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $ImgWidth   =   100 ;

个人技术作品 - PHP 验证码生成类

     public   $ImgHeight   =   30 ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $DotNoise   =   false ;

个人技术作品 - PHP 验证码生成类

     public   $DotNoiseWay   =   ' auto ' ;

个人技术作品 - PHP 验证码生成类

     public   $DotNoiseCol_r   =   array ( 100 , 255 );

个人技术作品 - PHP 验证码生成类

     public   $DotNoiseCol_b   =   array ( 100 , 255 );

个人技术作品 - PHP 验证码生成类

     public   $DotNoiseCol_g   =   array ( 100 , 255 );

个人技术作品 - PHP 验证码生成类

     public   $DotNoisePix   =   300 ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $LineNoise   =   false ;

个人技术作品 - PHP 验证码生成类

     public   $LineNoiseWay   =   ' auto ' ;

个人技术作品 - PHP 验证码生成类

     public   $LineNoiseCol_r   =   array ( 0 , 255 );

个人技术作品 - PHP 验证码生成类

     public   $LineNoiseCol_b   =   array ( 0 , 255 );

个人技术作品 - PHP 验证码生成类

     public   $LineNoiseCol_g   =   array ( 0 , 255 );

个人技术作品 - PHP 验证码生成类

     public   $LineNoisePix   =   300 ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $Border   =   false ;

个人技术作品 - PHP 验证码生成类

     public   $BorderWay   =   ' auto ' ;

个人技术作品 - PHP 验证码生成类

     public   $BorderCol_r   =   array ( 0 , 150 );

个人技术作品 - PHP 验证码生成类

     public   $BorderCol_b   =   array ( 0 , 150 );

个人技术作品 - PHP 验证码生成类

     public   $BorderCol_g   =   array ( 0 , 150 );

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $RandTextWay   =   ' auto ' ;

个人技术作品 - PHP 验证码生成类

     public   $RandTextCol_r   =   array ( 0 , 150 );

个人技术作品 - PHP 验证码生成类

     public   $RandTextCol_b   =   array ( 0 , 150 );

个人技术作品 - PHP 验证码生成类

     public   $RandTextCol_g   =   array ( 0 , 150 );

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $FontSizeFloat   =   10 ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $FontBE   =   15 ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $FontBX   =   5 ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $FontLean   =   18 ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $Toothful   =   2 ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $VerilyTine   =   true ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   $Gather   =   0 ;

个人技术作品 - PHP 验证码生成类

     public   $GatherTeam   =   array (

个人技术作品 - PHP 验证码生成类

     0 => array ( ' A ' , ' B ' , ' C ' , ' D ' , ' E ' , ' F ' , ' G ' , ' H ' , ' I ' , ' J ' , ' K ' , ' L ' , ' M ' , ' N ' , ' O ' , ' P ' , ' Q ' , ' R ' , ' S ' , ' T ' , ' U ' , ' V ' , ' W ' , ' X ' , ' Y ' , ' Z ' ) ,

个人技术作品 - PHP 验证码生成类

     1 => array ( ' a ' , ' b ' , ' c ' , ' d ' , ' e ' , ' f ' , ' g ' , ' h ' , ' i ' , ' j ' , ' j ' , ' l ' , ' m ' , ' n ' , ' o ' , ' p ' , ' q ' , ' r ' , ' s ' , ' t ' , ' u ' , ' v ' , ' w ' , ' x ' , ' y ' , ' z ' ) ,

个人技术作品 - PHP 验证码生成类

     2 => array ( ' 0 ' , ' 1 ' , ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' , ' 6 ' , ' 7 ' , ' 8 ' , ' 9 ' ));

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   function  ImgCode( $img_w   =   100 , $img_h   =   30 , $f_size   =   0 , $bg   =   false , $b_len   =   4 )

个人技术作品 - PHP 验证码生成类

    {

个人技术作品 - PHP 验证码生成类

         if ( ! $bg )

个人技术作品 - PHP 验证码生成类

        {

个人技术作品 - PHP 验证码生成类

             $this -> ImgWidth  =   $img_w ;     //  宽度赋值

个人技术作品 - PHP 验证码生成类

             $this -> ImgHeight  =   $img_h ;    //  高度赋值

个人技术作品 - PHP 验证码生成类

        }  else  {

个人技术作品 - PHP 验证码生成类

             if ( ! file_exists ( $bg )) die ( ' Find not BackGround File 1 ' );

个人技术作品 - PHP 验证码生成类

             $ImgSize   =   GetImageSize ( $bg );

个人技术作品 - PHP 验证码生成类

             $this -> ImgWidth  =   $ImgSize [ 0 ];     //  宽度赋值

个人技术作品 - PHP 验证码生成类

             $this -> ImgHeight  =   $ImgSize [ 1 ];    //  高度赋值

个人技术作品 - PHP 验证码生成类

        }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         $this -> BuildLen  =   $b_len ;      //  验证码长度赋值

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         if ( $f_size   !==   0 )

个人技术作品 - PHP 验证码生成类

        {

个人技术作品 - PHP 验证码生成类

             $this -> FontSize  =   $f_size ;

个人技术作品 - PHP 验证码生成类

        }  else  {

个人技术作品 - PHP 验证码生成类

             $this -> FontSize  =   $img_w   /   $b_len ;

个人技术作品 - PHP 验证码生成类

        }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         session_start ();

个人技术作品 - PHP 验证码生成类

        @ session_unregister ( " SESSION_KEY " );  //  若之前已存在一个 SESSION 会话,将其关闭

个人技术作品 - PHP 验证码生成类

        @ session_unregister ( " ENCRYPT_KEY " );  //  

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         session_register ( " ENCRYPT_KEY " );

个人技术作品 - PHP 验证码生成类

         session_register ( " SESSION_KEY " );     //  注册 SESSION_KEY

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         $this -> SID  =   session_id ();             //  给予 SESSIONID

个人技术作品 - PHP 验证码生成类

         if ( ! session_is_registered ( " SESSION_KEY " ))

个人技术作品 - PHP 验证码生成类

        {

个人技术作品 - PHP 验证码生成类

             die ( " session registered lost " );

个人技术作品 - PHP 验证码生成类

        }

个人技术作品 - PHP 验证码生成类

    }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     public   function  Build()

个人技术作品 - PHP 验证码生成类

    {

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         $m_Cade   =   '' ;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         $this -> FontSize  =   $this -> FontSize  -   $this -> Toothful;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         if ( $this -> BackGround)

个人技术作品 - PHP 验证码生成类

        {

个人技术作品 - PHP 验证码生成类

             if ( ! file_exists ( $this -> BackGround)) die ( ' Find not BackGround File 2 ' );

个人技术作品 - PHP 验证码生成类

             $ImgSize   =   GetImageSize ( $this -> BackGround);

个人技术作品 - PHP 验证码生成类

             $this -> ImgWidth  =   $ImgSize [ 0 ];     //  宽度赋值

个人技术作品 - PHP 验证码生成类

             $this -> ImgHeight  =   $ImgSize [ 1 ];    //  高度赋值

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

             switch ( $ImgSize [ 2 ])

个人技术作品 - PHP 验证码生成类

            {

个人技术作品 - PHP 验证码生成类

                 case   1 :

个人技术作品 - PHP 验证码生成类

                     $this -> Image  =  @imagecreatefromgif( $this -> BackGround);

个人技术作品 - PHP 验证码生成类

                       break ;

个人技术作品 - PHP 验证码生成类

                 case   2 :

个人技术作品 - PHP 验证码生成类

                     $this -> Image  =  @imagecreatefromjpeg( $this -> BackGround);

个人技术作品 - PHP 验证码生成类

                       break ;

个人技术作品 - PHP 验证码生成类

                 case   3 :

个人技术作品 - PHP 验证码生成类

                     $this -> Image  =  @imagecreatefrompng( $this -> BackGround);

个人技术作品 - PHP 验证码生成类

                       break ;

个人技术作品 - PHP 验证码生成类

            }

个人技术作品 - PHP 验证码生成类

        }  else  {

个人技术作品 - PHP 验证码生成类

             if ( ! $VerilyTine )

个人技术作品 - PHP 验证码生成类

            {

个人技术作品 - PHP 验证码生成类

                 $this -> Image  =  @imagecreate( $this -> ImgWidth , $this -> ImgHeight);

个人技术作品 - PHP 验证码生成类

            }  else  {

个人技术作品 - PHP 验证码生成类

                 $this -> Image  =  @imagecreatetruecolor( $this -> ImgWidth , $this -> ImgHeight);

个人技术作品 - PHP 验证码生成类

            }

个人技术作品 - PHP 验证码生成类

        }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         if ( ! $this -> Image) die ( " Cannot Initialize new GD image stream " );   //  是否创建成功

个人技术作品 - PHP 验证码生成类

         if ( ! $this -> BackGround)

个人技术作品 - PHP 验证码生成类

        {

个人技术作品 - PHP 验证码生成类

             $FunBackColor   =   $this -> FetchColor( $this -> BackColor);

个人技术作品 - PHP 验证码生成类

            imageFilledRectangle( $this -> Image , 0 , 0 , $this -> ImgWidth , $this -> ImgHeight , $FunBackColor );  //  创建一个矩型并填充

个人技术作品 - PHP 验证码生成类

        }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         //  如果字体超出高度则重设字体大小等于高度 - 2 , 防止超出图形区

个人技术作品 - PHP 验证码生成类

         if ( $this -> FontSize  >   $this -> ImgHeight)  $this -> FontSize  =   $this -> ImgHeight;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         //  设置字体生成的左边界

个人技术作品 - PHP 验证码生成类

         $FunLeft   =  ( $this -> ImgWidth  -   $this -> BuildLen  *  ( $this -> FontSize  +   $this -> FontSize  /   10 ))  /   $this -> FontSize;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         //  干扰信息出现在底部的判断

个人技术作品 - PHP 验证码生成类

         if ( $this -> NoisePosition  ==   false ) $this -> setNoise();

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         for ( $i   =   0 ; $i   <   $this -> BuildLen; $i ++ )

个人技术作品 - PHP 验证码生成类

        {

个人技术作品 - PHP 验证码生成类

             if ( ! $this -> OnlyKey)

个人技术作品 - PHP 验证码生成类

            {

个人技术作品 - PHP 验证码生成类

                 $UseKey   =   array_reverse ( $this -> GatherTeam[ $this -> Gather]);    //  如果为内定内容数据集,确定使用内容数据集,并反转数组

个人技术作品 - PHP 验证码生成类

                 $RandText   =   $UseKey [ mt_rand ( 0 , count ( $UseKey )  -   1 )];   //  扰乱计算本循环的字符

个人技术作品 - PHP 验证码生成类

                 $m_Cade   .=   $RandText ;   //  保存验证码信息

个人技术作品 - PHP 验证码生成类

            }  else  {

个人技术作品 - PHP 验证码生成类

                 //  是否区分大小写生成唯一验证码序列

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

                 if ( $this -> OnlyKeyWay  ==   0 )

个人技术作品 - PHP 验证码生成类

                {

个人技术作品 - PHP 验证码生成类

                     if ( $this -> OnlyKeySeed  ==   ' MD5 ' )   //  加密方式判断

个人技术作品 - PHP 验证码生成类

                    {

个人技术作品 - PHP 验证码生成类

                         $Rand   =   str_split ( strtolower ( md5 ( microtime ())));

个人技术作品 - PHP 验证码生成类

                    }  else  {

个人技术作品 - PHP 验证码生成类

                         $Rand   =   str_split ( strtolower ( sha1 ( microtime ())));

个人技术作品 - PHP 验证码生成类

                    }

个人技术作品 - PHP 验证码生成类

                }  else  {

个人技术作品 - PHP 验证码生成类

                     if ( $this -> OnlyKeySeed  ==   ' MD5 ' )   //  加密方式判断

个人技术作品 - PHP 验证码生成类

                    {

个人技术作品 - PHP 验证码生成类

                         $Rand   =   str_split ( strtoupper ( md5 ( microtime ())));

个人技术作品 - PHP 验证码生成类

                    }  else  {

个人技术作品 - PHP 验证码生成类

                         $Rand   =   str_split ( strtoupper ( sha1 ( microtime ())));

个人技术作品 - PHP 验证码生成类

                    }

个人技术作品 - PHP 验证码生成类

                }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

                 $Rand   =   array_reverse ( $Rand );

个人技术作品 - PHP 验证码生成类

                 $RandText   =   $Rand [ mt_rand ( 0 , count ( $Rand )  -   1 )];

个人技术作品 - PHP 验证码生成类

                 $m_Cade   .=   $RandText ;   //  保存验证码信息

个人技术作品 - PHP 验证码生成类

            }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

             //  设置字体颜色

个人技术作品 - PHP 验证码生成类

             if ( $this -> RandTextWay  ==   ' auto ' )

个人技术作品 - PHP 验证码生成类

            {

个人技术作品 - PHP 验证码生成类

                 $FunFontColor   =  imageColorAllocate( $this -> Image ,   mt_rand ( $this -> RandTextCol_r[ 0 ] ,   $this -> RandTextCol_r[ 1 ]) ,  

个人技术作品 - PHP 验证码生成类

                                                                   mt_rand ( $this -> RandTextCol_b[ 0 ] ,   $this -> RandTextCol_b[ 1 ]) ,  

个人技术作品 - PHP 验证码生成类

                                                                   mt_rand ( $this -> RandTextCol_g[ 0 ] ,   $this -> RandTextCol_g[ 1 ]));

个人技术作品 - PHP 验证码生成类

            }  else  {

个人技术作品 - PHP 验证码生成类

                 $FunFontColor   =   $this -> FetchColor( $this -> RandTextWay);

个人技术作品 - PHP 验证码生成类

            }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

             //  设置随机字体信息

个人技术作品 - PHP 验证码生成类

             $FontType   =   $this -> arlFont[ mt_rand ( 0 , count ( $this -> arlFont)  -   1 )];

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

             //  设置循环每个字符时的不同大小

个人技术作品 - PHP 验证码生成类

             $RandSize   =   mt_rand ( $this -> FontSize  -   $this -> FontSize  /   $this -> FontSizeFloat ,    //  下限

个人技术作品 - PHP 验证码生成类

                                 $this -> FontSize  +   $this -> FontSize  /   $this -> FontSizeFloat);  //  上限

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

            // 设置字体基本点 x (左右控制)

个人技术作品 - PHP 验证码生成类

             $Location_x   =   $FunLeft   +  ( $i   *   $this -> FontSize  +   $this -> FontSize  /   $this -> FontBE)  +   $this -> FontBX;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

             //  设置字体基本点 y (上下控制)

个人技术作品 - PHP 验证码生成类

             $Location_y   =   mt_rand ( $this -> FontSize  -   $this -> FontSize  /   $this -> FontBE ,  

个人技术作品 - PHP 验证码生成类

                                   $this -> FontSize  +   $this -> FontSize  /   $this -> FontBE);

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

            imagettftext( $this -> Image ,   $RandSize ,   mt_rand ( - $this -> FontLean , $this -> FontLean) ,   $Location_x ,   $Location_y ,  

个人技术作品 - PHP 验证码生成类

                          $FunFontColor ,   $FontType ,   iconv ( ' gb2312 ' , ' UTF-8 ' , $RandText ));

个人技术作品 - PHP 验证码生成类

        }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

        imageantialias( $this -> Image , true );

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         $_SESSION [ " SESSION_ID " ]  =   $this -> SID;

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         if ( $this -> OutPutWay  ==   0 )

个人技术作品 - PHP 验证码生成类

        {

个人技术作品 - PHP 验证码生成类

             $_SESSION [ " SESSION_KEY " ]  =   $m_Cade ;

个人技术作品 - PHP 验证码生成类

             $this -> OutPutText  =   $m_Cade ;

个人技术作品 - PHP 验证码生成类

        }  else   if ( $this -> OutPutWay  ==   1 ) {

个人技术作品 - PHP 验证码生成类

             $EnText   =   sha1 ( strrev ( md5 ( $m_Cade )));

个人技术作品 - PHP 验证码生成类

             $_SESSION [ " ENCRYPT_KEY " ]  =   $EnText ;

个人技术作品 - PHP 验证码生成类

             $this -> OutPutText  =   sha1 ( strrev ( md5 ( $m_Cade )));

个人技术作品 - PHP 验证码生成类

        }  else  {

个人技术作品 - PHP 验证码生成类

             $EnText   =   sha1 ( strrev ( md5 ( $m_Cade )));

个人技术作品 - PHP 验证码生成类

             $_SESSION [ " ENCRYPT_KEY " ]  =   $EnText ;

个人技术作品 - PHP 验证码生成类

             $_SESSION [ " SESSION_KEY " ]  =   $m_Cade ;

个人技术作品 - PHP 验证码生成类

             $this -> OutPutText  =   array ( 0 => $m_Cade , 1 => $EnText );

个人技术作品 - PHP 验证码生成类

        }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         //  干扰信息出现在第一层的判断

个人技术作品 - PHP 验证码生成类

         if ( $this -> NoisePosition  ==   true ) $this -> setNoise();

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

         header ( " Content-type: image/png " );

个人技术作品 - PHP 验证码生成类

        imagePng( $this -> Image);

个人技术作品 - PHP 验证码生成类

        imagedestroy( $this -> Image);

个人技术作品 - PHP 验证码生成类

    }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     private   function  setNoise()

个人技术作品 - PHP 验证码生成类

    {

个人技术作品 - PHP 验证码生成类

         //  安排边框

个人技术作品 - PHP 验证码生成类

         $this -> setBorser();

个人技术作品 - PHP 验证码生成类

         //  安排点性干扰

个人技术作品 - PHP 验证码生成类

         $this -> setDotNoise();

个人技术作品 - PHP 验证码生成类

         //  安排线性干扰

个人技术作品 - PHP 验证码生成类

         $this -> setLineNoise();

个人技术作品 - PHP 验证码生成类

    }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     private   function  setBorser()

个人技术作品 - PHP 验证码生成类

    {

个人技术作品 - PHP 验证码生成类

         if ( $this -> Border)

个人技术作品 - PHP 验证码生成类

        {

个人技术作品 - PHP 验证码生成类

             if ( $this -> BorderWay  ==   ' auto ' )

个人技术作品 - PHP 验证码生成类

            {

个人技术作品 - PHP 验证码生成类

                 $BorderColor   =  imageColorAllocate( $this -> Image ,   mt_rand ( $this -> BorderCol_r[ 0 ] ,   $this -> BorderCol_r[ 1 ]) ,  

个人技术作品 - PHP 验证码生成类

                                                                 mt_rand ( $this -> BorderCol_b[ 0 ] ,   $this -> BorderCol_b[ 1 ]) ,  

个人技术作品 - PHP 验证码生成类

                                                                 mt_rand ( $this -> BorderCol_g[ 0 ] ,   $this -> BorderCol_g[ 1 ]));

个人技术作品 - PHP 验证码生成类

                imageRectangle( $this -> Image ,   0 ,   0 ,   $this -> ImgWidth  -   1 ,   $this -> ImgHeight  -   1 ,   $BorderColor );

个人技术作品 - PHP 验证码生成类

            }  else  {

个人技术作品 - PHP 验证码生成类

                 $BorderColor   =   $this -> FetchColor( $this -> BorderWay);

个人技术作品 - PHP 验证码生成类

                imageRectangle( $this -> Image ,   0 ,   0 ,   $this -> ImgWidth  -   1 ,   $this -> ImgHeight  -   1 ,   $BorderColor );

个人技术作品 - PHP 验证码生成类

            }

个人技术作品 - PHP 验证码生成类

             return   true ;

个人技术作品 - PHP 验证码生成类

        }  else  {

个人技术作品 - PHP 验证码生成类

             return   false ;

个人技术作品 - PHP 验证码生成类

        }

个人技术作品 - PHP 验证码生成类

    }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     private   function  setDotNoise()

个人技术作品 - PHP 验证码生成类

    {

个人技术作品 - PHP 验证码生成类

         if ( $this -> DotNoise)

个人技术作品 - PHP 验证码生成类

        {

个人技术作品 - PHP 验证码生成类

             if ( $this -> DotNoiseWay  ==   ' auto ' )

个人技术作品 - PHP 验证码生成类

            {

个人技术作品 - PHP 验证码生成类

                 for ( $i   =   0 ;  $i   <   $this -> DotNoisePix;  $i ++ ){

个人技术作品 - PHP 验证码生成类

                     $randColor   =  imageColorAllocate( $this -> Image ,   mt_rand ( $this -> DotNoiseCol_r[ 0 ] ,   $this -> DotNoiseCol_r[ 1 ]) ,  

个人技术作品 - PHP 验证码生成类

                                                                   mt_rand ( $this -> DotNoiseCol_b[ 0 ] ,   $this -> DotNoiseCol_b[ 1 ]) ,  

个人技术作品 - PHP 验证码生成类

                                                                   mt_rand ( $this -> DotNoiseCol_g[ 0 ] ,   $this -> DotNoiseCol_g[ 1 ]));  

个人技术作品 - PHP 验证码生成类

                    imageSetPixel( $this -> Image ,   mt_rand ( 0 ,   $this -> ImgWidth) ,   mt_rand ( 0 ,   $this -> ImgHeight) ,   $randColor );

个人技术作品 - PHP 验证码生成类

                }

个人技术作品 - PHP 验证码生成类

            }  else  {

个人技术作品 - PHP 验证码生成类

                 $DotColor   =   $this -> FetchColor( $this -> DotNoiseWay);

个人技术作品 - PHP 验证码生成类

                 for ( $i   =   0 ;  $i   <   $this -> DotNoisePix;  $i ++ ){

个人技术作品 - PHP 验证码生成类

                    imageSetPixel( $this -> Image ,   mt_rand ( 0 ,   $this -> ImgWidth) ,   mt_rand ( 0 ,   $this -> ImgHeight) ,   $DotColor );

个人技术作品 - PHP 验证码生成类

                }

个人技术作品 - PHP 验证码生成类

            }

个人技术作品 - PHP 验证码生成类

             return   true ;

个人技术作品 - PHP 验证码生成类

        }  else  {

个人技术作品 - PHP 验证码生成类

             return   false ;

个人技术作品 - PHP 验证码生成类

        }

个人技术作品 - PHP 验证码生成类

    }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     private   function  setLineNoise()

个人技术作品 - PHP 验证码生成类

    {

个人技术作品 - PHP 验证码生成类

         if ( $this -> LineNoise)

个人技术作品 - PHP 验证码生成类

        {

个人技术作品 - PHP 验证码生成类

             if ( $this -> LineNoiseWay  ==   ' auto ' )

个人技术作品 - PHP 验证码生成类

            {

个人技术作品 - PHP 验证码生成类

                 for ( $i = 0 ; $i   <   $this -> LineNoisePix; $i ++ )

个人技术作品 - PHP 验证码生成类

                {

个人技术作品 - PHP 验证码生成类

                     $LineColor   =  imageColorAllocate( $this -> Image ,   mt_rand ( $this -> LineNoiseCol_r[ 0 ] ,   $this -> LineNoiseCol_r[ 1 ]) ,  

个人技术作品 - PHP 验证码生成类

                                                                     mt_rand ( $this -> LineNoiseCol_b[ 0 ] ,   $this -> LineNoiseCol_b[ 1 ]) ,  

个人技术作品 - PHP 验证码生成类

                                                                     mt_rand ( $this -> LineNoiseCol_g[ 0 ] ,   $this -> LineNoiseCol_g[ 1 ]));

个人技术作品 - PHP 验证码生成类

                    imageline( $this -> Image , mt_rand ( 0 , $this -> ImgWidth) , mt_rand ( 0 , $this -> ImgHeight) ,

个人技术作品 - PHP 验证码生成类

                                               mt_rand ( 0 , $this -> ImgWidth) , mt_rand ( 0 , $this -> ImgHeight) , $LineColor );

个人技术作品 - PHP 验证码生成类

                }

个人技术作品 - PHP 验证码生成类

            }  else  {

个人技术作品 - PHP 验证码生成类

                 $LineColor   =   $this -> FetchColor( $this -> LineNoiseWay);

个人技术作品 - PHP 验证码生成类

                 for ( $i = 0 ; $i   <   $this -> LineNoisePix; $i ++ )

个人技术作品 - PHP 验证码生成类

                {

个人技术作品 - PHP 验证码生成类

                    imageline( $this -> Image , mt_rand ( 0 , $this -> ImgWidth) , mt_rand ( 0 , $this -> ImgHeight) ,

个人技术作品 - PHP 验证码生成类

                                               mt_rand ( 0 , $this -> ImgWidth) , mt_rand ( 0 , $this -> ImgHeight) , $LineColor );

个人技术作品 - PHP 验证码生成类

                }

个人技术作品 - PHP 验证码生成类

            }

个人技术作品 - PHP 验证码生成类

        }

个人技术作品 - PHP 验证码生成类

    }

个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类
个人技术作品 - PHP 验证码生成类

     private   function  FetchColor( $Color   =   '' )

个人技术作品 - PHP 验证码生成类

    {

个人技术作品 - PHP 验证码生成类

         $Color   =   ereg_replace ( " ^# " , "" , $Color );

个人技术作品 - PHP 验证码生成类

         $r   =   $Color [ 0 ] . $Color [ 1 ];

个人技术作品 - PHP 验证码生成类

         $r   =   hexdec ( $r );

个人技术作品 - PHP 验证码生成类

         $b   =   $Color [ 2 ] . $Color [ 3 ];

个人技术作品 - PHP 验证码生成类

         $b   =   hexdec ( $b );

个人技术作品 - PHP 验证码生成类

         $g   =   $Color [ 4 ] . $Color [ 5 ];

个人技术作品 - PHP 验证码生成类

         $g   =   hexdec ( $g );

个人技术作品 - PHP 验证码生成类

         $Color   =  imagecolorallocate ( $this -> Image ,   $r ,   $b ,   $g );

个人技术作品 - PHP 验证码生成类

         return   $Color ;

个人技术作品 - PHP 验证码生成类

    }

个人技术作品 - PHP 验证码生成类

}

个人技术作品 - PHP 验证码生成类

?>

必须设置好,所需要的字体文件及其他资源。