PHP code example of easyswoole / verifycode

1. Go to this page and download the library: Download easyswoole/verifycode library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

easyswoole / verifycode example snippets




use EasySwoole\VerifyCode\{Config, VerifyCode, CaptchaColor, MIME};

$result = (new VerifyCode())->drawCode();
header('Content-Type: ' . $result->getImageMime());
echo $result->getImageByte();

function baseConfig(): Config
{
    return (new Config())
        ->setUseFont(__DIR__ . '/src/assets/ttf/6.ttf')
        ->setImageWidth(320)->setImageHeight(100)->setFontSize(30)
        ->setFontColor('#2457A6')->setBackColor('#FFFFFF')
        ->setUseNoise(false)->setUseCurve(false)->setComplexityLevel(1);
}

$result = (new VerifyCode(baseConfig()))->drawCode('AbC729');

$config = baseConfig()->setCharset('0123456789')->setLength(6);
$result = (new VerifyCode($config))->drawCode();

$config = baseConfig()
    ->setCharset('23456789ABCDEFGHJKLMNPQRSTUVWXYZ')->setLength(6);
$result = (new VerifyCode($config))->drawCode();

$config = baseConfig()->setFontColor('#7A2E8E')->setBackColor([255, 249, 240]);
$result = (new VerifyCode($config))->drawCode('AbC729');

$config = baseConfig()->setImageWidth(420)->setImageHeight(120)->setFontSize(38);
$result = (new VerifyCode($config))->drawCode('AbC729');

$config = baseConfig()->setUseNoise(true);
$result = (new VerifyCode($config))->drawCode('AbC729');

$config = baseConfig()->setUseCurve(true)->setComplexityLevel(4);
$result = (new VerifyCode($config))->drawCode('AbC729');

$config = baseConfig()->setUseNoise(true)->setUseCurve(true)->setComplexityLevel(4);
$result = (new VerifyCode($config))->drawCode('AbC729');

$config = baseConfig()->setComplexityLevel(5)->setUseNoise(true)->setUseCurve(true);
$result = (new VerifyCode($config))->drawCode('AbC729');

$config = baseConfig()->setComplexityLevel(7)->setUseNoise(false)->setUseCurve(false);
$result = (new VerifyCode($config))->drawCode('AbC729');

$config = baseConfig()->setComplexityLevel(3);
$result = (new VerifyCode($config))->drawCode('AbC729', CaptchaColor::BLUE);
$result->getPrompt();             // 请输入蓝色的验证码
$result->getTargetColor();        // CaptchaColor::BLUE
$result->getTargetColor()->value; // blue
$result->getTargetColor()->label();// 蓝色

$config = baseConfig()->setComplexityLevel(3)
    ->setDecoyCodeCount(1)       // 组数 1~5,默认 2
    ->setDecoyCharacterCount(1); // 每组字符数 1~8,默认 2
$result = (new VerifyCode($config))->drawCode('AbC729', CaptchaColor::BLUE);

$config = baseConfig()->setUseFont(__DIR__ . '/src/assets/ttf/1.ttf');
$result = (new VerifyCode($config))->drawCode('AbC729');

$config = (new Config())->addFonts('/absolute/path/my-font.ttf');
$config->addFonts(['/absolute/path/another-font.ttf']);
$result = (new VerifyCode($config))->drawCode();

$config = baseConfig()->setMimeType(MIME::JPG); // PNG / GIF / JPG
$result = (new VerifyCode($config))->drawCode('AbC729');

$result->getImageByte();   // 二进制图片
$result->getImageBase64(); // 完整 data URI
$result->getImageMime();   // 图片 MIME
$result->getImageCode();   // 目标答案,仅保存在服务端
$result->getCreateTime();  // Unix 时间戳
$result->getTargetColor(); // 枚举,普通模式为 null
$result->getPrompt();      // 提示语,普通模式为 null

echo '<img alt="验证码" src="' . $result->getImageBase64() . '">';

$this->response()->withHeader('Content-Type', $result->getImageMime());
$this->response()->withHeader('Cache-Control', 'no-store');
$this->response()->write($result->getImageByte());

session_start();
$result = (new VerifyCode())->drawCode();
$_SESSION['captcha'] = [
    'code' => strtolower($result->getImageCode()),
    'expiresAt' => time() + 120,
];
header('Content-Type: ' . $result->getImageMime());
header('Cache-Control: no-store');
echo $result->getImageByte();

session_start();
$saved = $_SESSION['captcha'] ?? null;
unset($_SESSION['captcha']);
$input = $_POST['captcha'] ?? null;
$valid = is_array($saved)
    && $saved['expiresAt'] >= time()
    && is_string($input)
    && hash_equals($saved['code'], strtolower(trim($input)));
bash
composer install
composer test
php example/generate.php