gpt4 book ai didi

Laravel下生成验证码的类

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

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

这篇CFSDN的博客文章Laravel下生成验证码的类由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

?
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
<?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);
   }
}

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

原文链接:http://www.cnblogs.com/sunshenggang/p/7772307.html 。

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

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