PHP-验证码

//验证码 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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值