• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Laravel下生成验证码的类

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

    ?php
     
    namespace App\Tool\Validate;
     
    //验证码类
    class ValidateCode {
      private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子
      private $code;//验证码
      private $codelen = 4;//验证码长度
      private $width = 130;//宽度
      private $height = 50;//高度
      private $img;//图形资源句柄
      private $font;//指定的字体
      private $fontsize = 20;//指定字体大小
      private $fontcolor;//指定字体颜色
     
      //构造方法初始化
      public function __construct()
      {
        $this->font = public_path() . '/fonts/Elephant.ttf';//注意字体路径要写对,否则显示不了图片
        $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 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 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 outPut()
      {
        header('Content-type:image/png');
        imagepng($this->img);
        imagedestroy($this->img);
      }
      //对外生成
      public function doimg()
      {
        $this->createBg();
        $this->createLine();
        $this->createFont();
        $this->outPut();
      }
      //获取验证码
      public function getCode()
      {
        return strtolower($this->code);
      }
    }
    

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。  

    您可能感兴趣的文章:
    • Laravel5.2使用Captcha生成验证码实现登录(session巨坑)
    • 用Laravel Sms实现laravel短信验证码的发送的实现
    • laravel中短信发送验证码的实现方法
    • 使用 laravel sms 构建短信验证码发送校验功能
    • laravel5.4生成验证码的代码
    • laravel5.4生成验证码的实例讲解
    • Laravel8 使用图形验证码做登录功能的实现
    上一篇:Ajax中的JSON格式与php传输过程全面解析
    下一篇:ThinkPHP实现转换数据库查询结果数据到对应类型的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Laravel下生成验证码的类 Laravel,下,生成,验证,码,