Laravel 下生成验证码的类
来源:互联网 发布:q宠大乐斗门派心法数据 编辑:程序博客网 时间:2024/05/29 04:00
<?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);
}
}
阅读全文
0 0
- Laravel 下生成验证码的类
- laravel 生成验证码的方法
- laravel 生成验证码的方法
- laravel 生成验证码的方法
- Laravel验证码类
- php下生成验证码的类
- Laravel 验证码类的大坑
- Laravel 5.4.*中验证码类的使用
- Laravel的验证码库gregwar/captcha
- Laravel的验证码库gregwar/captcha
- Laravel的验证码库gregwar/captcha
- Laravel的验证码库gregwar/captcha
- Laravel框架中验证码的使用
- Laravel的验证码库gregwar/captcha
- 从零开始使用Laravel的图片验证码
- Laravel的表单验证
- laravel 的验证规则
- 验证码的生成类
- 【iOS性能优化】MLeaksFinder内存泄漏检测
- golang中container/list包用法
- TCP下实现通讯
- NFS简单配置
- Java String.split()
- Laravel 下生成验证码的类
- php之普通hash分布式算法
- [02-01]如何学习新技术,比如java,学什么
- HTML和CSS入门(5)
- jquery 常用命令
- 08_Java基础语法_第8天(Eclipse)
- 如何在weka中添加自己的算法
- 统计实例的个数:通过声明类的静态数据成员方式解决
- iframe父页面与子页面之间的元素获取与方法调用