🗣 Wd提问: PHP源码中文验证码
🤖 Ai回答: 在 PHP 中生成中文验证码,通常需要使用 GD 库来绘制图像,并将中文字符写入图像中。由于中文字符是 Unicode 编码的,不能直接使用 `imagestring()` 函数显示,需要使用 `imagettftext()` 函数并配合一个中文字体文件(如 `.ttf`)来实现。
✅ 示例:PHP 生成中文验证码(含完整代码)
1、创建 PHP 文件:`captcha.php`
php
<?php
session_start();
// 设置图像大小
$width = 200;
$height = 80;
// 创建画布
$image = imagecreatetruecolor($width, $height);
// 设置背景颜色
$bgColor = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bgColor);
// 设置干扰元素(点和线)
for ($i = 0; $i < 100; $i++) {
$color = imagecolorallocate($image, rand(100, 255), rand(100, 255), rand(100, 255));
imagesetpixel($image, rand(0, $width), rand(0, $height), $color);
}
for ($i = 0; $i < 5; $i++) {
$color = imagecolorallocate($image, rand(100, 200), rand(100, 200), rand(100, 200));
imageline($image, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), $color);
}
// 设置中文字符集
$chars = '中易知编成码文验试示例';
// 随机选取4个中文字符
$code = '';
for ($i = 0; $i < 4; $i++) {
$code .= $chars[rand(0, mb_strlen($chars, 'utf-8') 1)];
}
// 将验证码存入 session 供验证使用
$_SESSION['captcha'] = $code;
// 设置字体路径(请确保字体文件存在)
$font = 'simhei.ttf'; // 请下载并上传中文字体文件,如 simhei.ttf
// 随机角度、字体大小
$angle = rand(-30, 30);
$fontSize = 24;
// 显示中文验证码
$x = 20;
$y = 55;
for ($i = 0; $i < strlen($code); $i++) {
$char = mb_substr($code, $i, 1, 'utf-8');
$color = imagecolorallocate($image, rand(0, 100), rand(0, 100), rand(0, 100));
imagettftext($image, $fontSize, rand(-30, 30), $x, $y, $color, $font, $char);
$x += 45;
}
// 输出图像
header('Content-Type: image/png');
imagepng($image);
// 释放资源
imagedestroy($image);
2、使用说明
✅ 页面中使用验证码
html
<img src=captcha.php alt=验证码 onclick=this.src='captcha.php?'+Math.random(); style=cursor:pointer; /
✅ 验证用户输入的验证码是否正确
php
session_start();
if ($_POST['code'] === $_SESSION['captcha']) {
echo 验证码正确;
} else {
echo 验证码错误;
}
3、注意事项
字体文件:必须上传一个支持中文的字体文件(如 `simhei.ttf`、`simsun.ttc` 等),并确保路径正确。
服务器环境:需要开启 `GD` 库 和 `FreeType` 支持。
中文编码:使用 `mb_strlen()` 和 `mb_substr()` 处理 UTF-8 中文字符。
4、常见字体文件下载地址(示例)
你可以在网上下载以下字体文件并上传到你的服务器:
黑体:`simhei.ttf`
宋体:`simsun.ttc`
微软雅黑:`msyh.ttf`
也可以从本地系统字体中找到这些字体文件(路径一般为 `C:\Windows\Fonts\`)。
✅ 小结
| 功能 | 说明 |
| 图像生成 | 使用 `imagecreatetruecolor` |
| 中文支持 | 使用 `imagettftext` + 中文字体 |
| 干扰项 | 随机点、线 |
| 验证码存储 | 使用 `$_SESSION` |
| 字符来源 | 自定义中文字符串 |
如果你需要我提供一个完整的项目结构或打包下载,也可以告诉我,我可以为你生成 ZIP 文件结构。
📣 商家广告:





0
IP地址: 47.16.197.173
搜索次数: 0
提问时间: 2025-11-10 08:10:35
🛒 域名购买:
lytxw.com
pxks.cn
mj.gs
27.gs
ndgj.cn
pai.pw
zw.gs
92.gs
che.gs
zf.gs
❓️ 热门提问:
mil.nz域名
创建网站需要域名
海外域名怎么申请
公司自购服务器
vps日本双线cn2
ip降级
实体服务器租
吉林市托管
RabbitMQ源码剖析PHP客户端
mysql服务端安装
豌豆Ai站群搜索引擎系统
🌐 域名评估:
suzhouguo.cn
jagb.cn
trump.xj.cn
aaaa.gs.cn
k.tw.cn
vtol.gx.cn
guaj.cn
oppo.qh.cn
vance.blue
e-j.com.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
青蛙Ai系统
Us search engine
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。