当前位置:首页 > 网络教程 > php > 教程帖-搭建API-PHP生成3位字母数字组合的图片验证码

教程帖-搭建API-PHP生成3位字母数字组合的图片验证码

一叶知秋2023-11-14 16:18:06php7

使用 PHP 创建随机验证码图片

最终效果:
在这里插入图片描述
体验网站:测试地址

在本教程中,我们将学习如何使用 PHP 生成随机验证码图片,包括随机的字母和数字组合,干扰线条和点等。最后,我们将把生成的图片以 base64 格式嵌入到网页中。

步骤一:设置图片尺寸和创建画布

首先,我们需要设置图片的宽度和高度,并创建一个空白的画布。

$width = 200;
$height = 80;

// 创建空白画布
$image = imagecreatetruecolor($width, $height);

步骤二:填充背景颜色和生成验证码

接下来,我们会为画布填充背景颜色,并生成随机的4位数字和字母混合验证码。

// 创建背景颜色
$bgColor = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bgColor);

// 生成随机的4位数字和字母混合验证码
$code = '';
$characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$charLength = strlen($characters);
for ($i = 0; $i < 3; $i++) {
    $code .= $characters[rand(0, $charLength - 1)];
}

步骤三:添加干扰线条和写入字符

在这一步,我们将添加随机的干扰线条,并在画布上写入随机的数字和字母。

// 添加随机干扰线条
for ($i = 0; $i < 10; $i++) {
    $lineColor = imagecolorallocate($image, rand(0, 200), rand(0, 200), rand(0, 200));
    imageline($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width), mt_rand(0, $height), $lineColor);
}
// 写入随机数字和字母
$x = 20;
for ($i = 0; $i < 3; $i++) {
    $character = $code[$i];
    $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
    $font = 'arial.ttf'; // 字体文件路径,需要根据实际情况修改
    $size = rand(25, 40);
    $angle = rand(-10, 10);
    $x += rand(10, 20);
    $y = rand(40, 60);
    imagettftext($image, $size, $angle, $x, $y, $color, $font, $character);
    $x += $size + rand(10, 20);
}
// 添加随机干扰点
for ($i = 0; $i < 300; $i++) {
    $pointColor = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
    imagesetpixel($image, mt_rand(0, $width - 1), mt_rand(0, $height - 1), $pointColor);
}

步骤四:生成base64格式的图片数据

最后,我们将图片转换为 base64 格式,并将其嵌入到网页中供用户验证使用。

// 将图片转换为base64格式
ob_start();
imagepng($image);
$image_data = ob_get_clean();
$base64 = 'data:image/png;base64,' . base64_encode($image_data);

// 输出base64格式的图片数据
echo '<img src="' . $base64 . '" alt="验证码">';
echo $code;
imagedestroy($image);

通过以上步骤,我们成功创建了一个简单的随机验证码图片生成代码,并将其嵌入到网页中供用户使用。希望这个教程对你有所帮助!
在这里插入图片描述

扫描二维码推送至手机访问。

版权声明:本站部分文章来自AI创作、互联网收集,请查看免责申明

本文链接:https://www.yyzq.team/post/301011.html

分享给朋友: