//验证码 yzm(画布宽,画布高,验证码数量,验证码大小,干扰素数量)
function yzm($imw,$imh,$num,$fontsize,$internum) {
//session
session_start();
//创建画布
$im = imagecreatetruecolor($imw, $imh);
//准备染料
$gray = imagecolorallocate($im, 200, 200, 200);
$black = imagecolorallocate($im, 0, 0, 0);
//填充背景
imagefill($im,0,0,$gray);
//画图
//字符串
$arr = array_merge(range(0,9),range('a', 'z'),range('A','Z'));
shuffle($arr);
$str = join('',array_slice($arr,0,$num));
//字符串位置
$x = ($imw - $num * $fontsize) / 2 + 10;
$y = ($imh - $fontsize) /2 + $fontsize;
//字符串保存在图中
$file = 'code/fonts/DroidSans.ttf';
imagettftext($im, $fontsize, 0, $x, $y, $black, $file, $str);
//加干扰素
for($i = 0; $i < $internum; $i++) {
imagesetpixel($im, mt_rand(0,$imw), mt_rand(0,$imh), $black);
}
//session
$_SESSION['vcode'] = $str;
//保存输出
header('content-type:image/png');
imagepng($im);
//销毁画布
imagedestroy($im);
}
yzm(100,50,4,20,500);
PHP-验证码
最新推荐文章于 2024-11-12 23:14:56 发布