编写 captcha.php 文件来生成验证码图片
时间: 2024-02-21 13:01:42 浏览: 134
好的,以下是一个使用 PHP 生成验证码图片的示例:
```php
<?php
session_start();
// 定义验证码图片的宽度和高度
$width = 120;
$height = 40;
// 创建一个空白的验证码图片
$image = imagecreatetruecolor($width, $height);
// 定义验证码图片的背景颜色和文本颜色
$bg_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
// 填充背景颜色
imagefill($image, 0, 0, $bg_color);
// 生成随机的验证码文本
$code = '';
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
for ($i = 0; $i < 4; $i++) {
$code .= $chars[mt_rand(0, strlen($chars) - 1)];
}
// 将验证码文本存储到 session 中,以便验证用户输入的文本
$_SESSION['captcha'] = $code;
// 在验证码图片中绘制文本
imagettftext($image, 20, 0, 10, 30, $text_color, 'arial.ttf', $code);
// 将验证码图片输出到浏览器
header('Content-Type: image/png');
imagepng($image);
// 释放内存
imagedestroy($image);
?>
```
在上面的示例中,我们使用 `imagecreatetruecolor()` 函数创建了一个指定宽度和高度的空白图片,使用 `imagecolorallocate()` 函数定义了验证码图片的背景颜色和文本颜色,使用 `imagefill()` 函数填充了背景颜色,使用 `imagettftext()` 函数在验证码图片中绘制了随机的文本,并使用 `imagepng()` 函数将验证码图片输出到浏览器。最后,我们将验证码文本存储到 `$_SESSION` 中,以便后续验证用户输入的文本是否正确。请注意,为了绘制文本,我们需要使用一个 TrueType 字体文件,例如 Arial.ttf。您需要将此文件放置在与 `captcha.php` 相同的目录中。
阅读全文