ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

封装制作验证码的函数并调用

2019-08-19 18:03:01  阅读:187  来源: 互联网

标签:rand 调用 封装 200 image 验证码 mt num 20


//封装制作验证码的函数
function captcha($width=100,$height=30,$num=4){
	//创建画布
	$image = imagecreatetruecolor($width,$height);
	//设置画布背景色
	$bgcolor = imagecolorallocate($image, mt_rand(20,200), mt_rand(20,200), mt_rand(20,200));
	//分配背景色
	imagefill($image, 0, 0, $bgcolor);
	//生成验证码的字符串函数
	function setcode($num){
		$charset = 'abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789';//56个字符串选择生成的验证码
		$string = '';
		for ($i=0; $i < ($num); $i++) { 
			$string .= $charset[mt_rand(0,55)];
		}
		return $string;
	}
	//获取字符串
	$code = setcode($num);
	//设置每个字符串的颜色和位置
	for ($j=0; $j < strlen($code); $j++) {
		//设置随机的字符串颜色 
		$codecolor = imagecolorallocate($image, mt_rand(100,200), mt_rand(100,200), mt_rand(100,200));
		//将字符串写入画布
		//msyh.ttc:字体文件引入-微软雅黑字体文件;
		imagettftext($image, mt_rand(12,18), mt_rand(-20,20), 18*($j+1), 20, $codecolor, 'msyh.ttc', $code[$j]);
	}

	//设置干扰线:3条
	for ($n=1; $n < ($num); $n++) { 
		$linecolor = imagecolorallocate($image, mt_rand(0,200), mt_rand(0,200), mt_rand(0,200));
		imageline($image,mt_rand(0,80), mt_rand(0,30), mt_rand(0,100), mt_rand(0,30), $linecolor);
	}

	//画布显示
	header('content-type:image/jpeg');//设置类型
	imagejpeg($image);//显示画布
}

//调用函数:输出验证码,不赋值表示采用默认值
captcha();

标签:rand,调用,封装,200,image,验证码,mt,num,20
来源: https://blog.csdn.net/u011234448/article/details/99744472

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有