基本信息
源码名称:php生成字符数字、文字、算术验证码
源码大小:7.64M
文件格式:.zip
开发语言:PHP
更新时间:2018-07-01
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
直接运行 各个目录下的 validateCode.php文件 即可查看效果

字符验证码如下:

算术验证码如下;


文字验证码如下:


<?php
class ValidateCode
{
  private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子
  public $code;//验证码
  private $codelen;//验证码长度
  private $width;//宽度
  private $height;//高度
  private $img;//图形资源句柄
  private $font;//指定的字体
  private $fontsize;//指定字体大小

  //构造方法初始化
  public function __construct ($width = 130, $height = 50, $codelen = 4,$fontsize = 20)
  {
      $this->font = './Elephant.ttf';//注意字体路径要写对,否则显示不了图片
      $this->codelen = $codelen;
      $this->height = $height;
      $this->width = $width;
      $this->fontsize = $fontsize;
      $this->createCode();
  }

  //生成随机码
  private function createCode()
  {
      $_len = strlen($this->charset) - 1;
      for ($i = 0;$i < $this->codelen;  $i) {
          $this->code .= $this->charset[mt_rand(0, $_len)];
      }
  }

  //生成背景
  private function createBg()
  {
      $this->img = imagecreatetruecolor($this->width, $this->height);
      $color = imagecolorallocate($this->img, mt_rand(157, 255), mt_rand(157, 255), mt_rand(157, 255));
      imagefilledrectangle($this->img, 0, $this->height, $this->width, 0, $color);
  }

  //生成线条、雪花
  private function createLine()
  {
    //线条
    for ($i = 0;$i < 6;  $i) {
        $color = imagecolorallocate($this->img, mt_rand(0, 156), mt_rand(0, 156), mt_rand(0, 156));
        imageline($this->img, mt_rand(0, $this->width), mt_rand(0, $this->height), mt_rand(0, $this->width), mt_rand(0, $this->height), $color);
    }
    //雪花
    for ($i = 0;$i < 100;  $i) {
        $color = imagecolorallocate($this->img, mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255));
        imagestring($this->img, mt_rand(1, 5), mt_rand(0, $this->width), mt_rand(0, $this->height), '*', $color);
    }
  }

  //生成文字
  private function createFont()
  {
      $_x = $this->width / $this->codelen;
      for ($i = 0;$i < $this->codelen;  $i) {
          $this->fontcolor = imagecolorallocate($this->img, mt_rand(0, 156), mt_rand(0, 156), mt_rand(0, 156));
          imagettftext($this->img, $this->fontsize, mt_rand(-30, 30), $_x * $i   mt_rand(1, 5), $this->height / 1.4, $this->fontcolor, $this->font, $this->code[$i]);
      }
  }
  //输出
  private function outPut()
  {
      header('Content-type:image/png');
      imagepng($this->img);
      imagedestroy($this->img);
  }

  //对外生成
  public function doimg()
  {
      $this->createBg();
      $this->createLine();
      $this->createFont();
      $this->outPut();
  }

}
?>