php生成验证码

		//生成验证码
		public function checkCode()
		{
			$width = 100;
			$height= 30 ;
			//创建画布,默认背景颜色为黑色
			$img = imagecreatetruecolor($width, $height);
			
			//指定字符串
			$str = $this->randomString(4);

			//将字符串放入session
			$_SESSION["checkcode"] = implode("", $str) ;

			//修改$str为字符串
			$str = implode(" ", $str);
			//设置干扰像素点
			$pixelnum = 100;
			for ($i=0; $i <$pixelnum ; $i++) { 
				$color = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
				imagesetpixel($img, mt_rand(0,$width), mt_rand(0,$height), $color);
			}
			//设置干扰线
			$linenum = 5 ;
			for ($i=0; $i <$linenum ; $i++) { 
				$color = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
				imageline($img, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $color);
			}			
			//设置字符串颜色
			$color = imagecolorallocate($img, mt_rand(150,255), mt_rand(150,255), mt_rand(150,255));
			//将字符串写到画布
			imagestring($img, 5, $width/5, $height/3, $str, $color);
			//设置输出类型
			header("Content-Type:image/png");
			//输出到浏览器
			imagepng($img);
		}
		//根据指定长度返回字符串数组
		public function randomString($length)
		{
			$lower = range('a', 'z');
			$upper = range('A', 'Z');
			$num = range('0', '9');
			$all = array_merge($lower,$upper,$num);
			shuffle($all);
			
			for ($i=0; $i <$length ; $i++) { 
				$str[]= $all[array_rand($all)];
			}
			return $str;
		}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值