封装验证码函数

<?php
verify();
function verify($width = 100,$height = 40,$num = 5,$type = 3){
$image = imagecreatetruecolor($width, $height);
imagefilledrectangle($image, 0, 0, $width, $height, lightColor($image));
$string = '';
switch($type){
case 1:
$str = '0123456789';
$string = substr(str_shuffle($str), 0 ,$num);
break;
case 2:
$arr = range('a','z');
shuffle($arr);
$tmp = array_slice($arr,0,5);
$string = join('', $tmp);
break;
case 3:
$str = '0123456789abcdefghizklmnopqrstuvwxyzABCDEFGHIZKLMNOPQRSTUVWXYZ';
$string = substr(str_shuffle($str),0,$num);
break;
}
$fontsize = 16;
for($i = 0;$i < $num;$i++){
$x = floor($width / $num) * $i + 4;
$y = mt_rand(10, $height - 20);
imagechar($image, $fontsize, $x, $y, $string[$i], deepColor($image));
}
for($i = 0;$i < $num;$i++){
imagearc($image, mt_rand(10, $width), mt_rand(10, $height), mt_rand(10, $width), mt_rand(10, $height), mt_rand(0, 10), mt_rand(0, 270), deepColor($image));
}
for($i = 0;$i < 50;$i++){
imagesetpixel($image, mt_rand(10, $width), mt_rand(10, $height), deepColor($image));
}
header('Content-type:image/png');
imagepng($image);
imagedestroy($image);
return $string;
}
function lightColor($image){
return imagecolorallocate($image, mt_rand(130, 255),mt_rand(130, 255), mt_rand(130, 255));
}
function deepColor($image){
return imagecolorallocate($image, mt_rand(0, 120),mt_rand(0, 120), mt_rand(0, 120));
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理