📜  无脂肪验证码插件 - PHP (1)

📅  最后修改于: 2023-12-03 14:55:08.599000             🧑  作者: Mango

无脂肪验证码插件 - PHP

简介

无脂肪验证码插件是一个基于PHP语言的验证码库,用于生成图片验证码。这个库的最大特点是生成的验证码图片不含有任何的字体文件,减少了运行环境对于字体文件的依赖,让验证码图片更加轻便和易于移植。此外,该库支持自定义验证码长度,干扰线条,干扰点等等。

安装

该验证码插件可以通过composer进行安装,你只需要在你的composer.json文件中添加如下内容:

{
    "require": {
        "fatty-free/captcha": "^1.0"
    }
}

或者使用composer命令进行安装:

composer require fatty-free/captcha
使用

使用无脂肪验证码插件很简单。以下是一个简单的例子:

<?php
require './vendor/autoload.php';

// 创建验证码生成器
$captcha = new \Fatty\Captcha();

// 生成验证码图片
$captcha->generate();

// 输出图像
header('Content-Type: image/png');
$captcha->output();

在上述例子中,我们首先创建了一个验证码生成器的实例对象。然后,调用generate()方法便可以生成验证码图片。最后,通过调用output()方法,我们将生成的验证码图片输出到浏览器中。

自定义选项

除了使用默认设置生成验证码之外,你可以通过传递一些参数来自定义生成的验证码图片。以下是一些常用的选项;

  • length:验证码的长度。默认值为4
  • charset:生成验证码的字符集。默认值为:23456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ
  • fontSize: 验证码字体大小。默认值30
  • backgroundColor:验证码背景颜色, 取值范围为: ['r' => min(255, max(0, $r)), 'g' => min(255, max(0, $g)), 'b' => min(255, max(0, $b))]
  • fontColors:字体颜色,从数组中随机选取一个
  • imageWidth: 验证码图片宽度。默认值150
  • imageHeight: 验证码图片高度。默认值50
  • lineWidth:干扰线的宽度。默认值为2
  • lineCount:干扰线数量。默认值为2
  • dotSize:干扰点的大小。默认值为2
  • dotCount:干扰点的数量。默认值为50

以下是一个自定义选项的例子:

$options = [
    'length' => 6,
    'dotSize' => 3,
    'backgroundColor' => [
        'r' => 255,
        'g' => 255,
        'b' => 255,
    ],
    'fontColors' => [
        ['r' => 100, 'g' => 200, 'b' => 255],
        ['r' => 200, 'g' => 100, 'b' => 255],
        ['r' => 255, 'g' => 200, 'b' => 100],
    ],
];

$captcha = new \Fatty\Captcha($options);
可用方法

以下是一些常用的方法:

generate()

生成验证码图片。生成的验证码可以通过调用getCode()方法来获取。

getCode()

获取生成的验证码字符串。该方法只有在调用generate()方法之后才能获取到验证码。

setImageWidth($width)

设置验证码图片的宽度。$width参数必须为一个整数。该方法必须在调用generate()方法之前调用。

setImageHeight($height)

设置验证码图片的高度。$height参数必须为一个整数。该方法必须在调用generate()方法之前调用。

setLength($length)

设置验证码的长度。$length参数必须为一个整数。该方法必须在调用generate()方法之前调用。

setCharset($charset)

设置验证码的字符集。$charset参数必须为一个字符串。该方法必须在调用generate()方法之前调用。

setFontSize($fontSize)

设置字体大小。$fontSize参数必须为一个整数。该方法必须在调用generate()方法之前调用。

setBackgroundColor($r, $g, $b)

设置背景颜色。$r、$g、$b参数分别代表了红、绿、蓝三个颜色通道的值, 取值范围为0-255。该方法必须在调用generate()方法之前调用。

setFontColors($colors)

设置字体颜色。$colors参数必须为一个由数组构成的数组。该方法必须在调用generate()方法之前调用。

setLineWidth($width)

设置干扰线宽度。$width参数必须为一个整数。该方法必须在调用generate()方法之前调用。

setLineCount($count)

设置干扰线数量。$count参数必须为一个整数。该方法必须在调用generate()方法之前调用。

setDotSize($size)

设置干扰点大小。$size参数必须为一个整数。该方法必须在调用generate()方法之前调用。

setDotCount($count)

设置干扰点数量。$count参数必须为一个整数。该方法必须在调用generate()方法之前调用。

getCaptchCode()

获取验证码图片的base64编码。