程泳文个人网

我终于到了小时候最羡慕的年纪,可是没有成为小时候最想成为的人.......


    用PHP实现图片验证码示例

    类别:技术文档 作者:转载自网络 时间:2019-05-20

    1、产生随机字符串 
    2、创建一张简单的图片,设置背景色,文本色
     
    3、再加一些干扰线,干扰素
     
    4、输出图像
     
    5、销毁图像资源
     
    <?php
     
    //PHP生成图片验证码
     
    class VerifyImage{
     
      private $verifyCode;
      private $image;
     
      //生成随机字串
      private function createCode($type=1,$length=4){
          if ($type == 1) {
              $verifyCode = implode('', range(0, 9));
          }elseif ($type == 2) {
              $verifyCode = implode('', array_merge(range('a', 'z'),range('A', 'Z')));
          }else{
              $verifyCode = implode('', array_merge(range('a', 'z'),range(0, 9),range('A', 'Z')));
          }
     
          //判断生成字符是否符合要求
          if (strlen($verifyCode)<$length) {
              return false;
          }
          //打乱字符串
          $verifyCode = str_shuffle($verifyCode);
          return substr($verifyCode, 0,$length);
      }
      //生成图片,并加入干扰线,干扰素
      public function createImage($type=1,$length=4,$width = 80,$height = 40){
          $verifyCode = $this->createCode($type,$length);
          $image = imagecreatetruecolor($width, $height);
     
          //白色背景
          $white = imagecolorallocate($image, 255, 255, 255);
          //字体颜色
          $fontStyle = imagecolorallocate($image, rand(0, 255),rand(0, 255), rand(0, 255));;
          imagefill($image, 0, 0, $white);
          imagestring($image, 5, 10, 10, $verifyCode, $fontStyle);
          //加入干扰点
          for($i = 0; $i < 80; $i++) {  
              $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));  
              imagesetpixel($image, rand(0, $width), rand(0,$height), $color);  
          }
          //干扰线  
          for($i = 0; $i < 5; $i++) {  
              $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));  
              imageline($image, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), $color);  
          } 
          //输出图片
          header("Content-type: image/png"); 
          imagepng($image);
          //释放资源
          imagedestroy($image);
      }
    }
     
    $im = new VerifyImage();;
    $im->createImage(3);
     
    ?>

     

Copyright © 2018-2019 程泳文个人网www.yongwen.top, All Rights Reserved.
网站简陋,版权没有,随意转载,欢迎交流。
鄂ICP备19011424号