>  기사  >  백엔드 개발  >  PHP生成随机图片验证码类分享

PHP生成随机图片验证码类分享

WBOY
WBOY원래의
2016-06-20 13:01:061186검색

PHP常用功能类 - 生成随机图片验证码

分享一个php实现的随机图片图片验证码封装类,一个最简单的生成随机验证码图片的例子,适合正在学习OOP面向对象编程以及PHP随机图片验证码生成的同学。

<?php class Verify{ 
	public function show() { 
	$len = 5; 
	$str = "ABCDEFGHIJKLNMPQRSTUVWXYZ123456789"; 

	$im = imagecreatetruecolor ( 70, 20 ); 
	$bgc = imagecolorallocate($im, 255, 255, 255); 
	$bgtxt = imagecolorallocate($im, 220, 220, 220); 

	//随机调色板 
	$colors = array( 
		imagecolorallocate($im, 255, 0, 0), 
		imagecolorallocate($im, 0, 200, 0), 
		imagecolorallocate($im, 0, 0, 255), 
		imagecolorallocate($im, 0, 0, 0), 
		imagecolorallocate($im, 255, 128, 0), 
		imagecolorallocate($im, 255, 208, 0), 
		imagecolorallocate($im, 98, 186, 245), 
	); 

	//填充背景色 
	imagefill($im, 0, 0, $bgc); 

	//随机获取数字 
	$verify = ""; 
	while (strlen($verify) < $len) { 
		$i = strlen($verify); 
		$random = $str[rand(0, strlen($str))]; 
		$verify .= $random; 

		//绘制背景文字 
		imagestring($im, 6, ($i*10)+3, rand(0,6), $random, $bgtxt); 
		//绘制主文字信息 
		imagestring($im, 6, ($i*10)+3, rand(0,6), $random, $colors[rand(0, count($colors)-1)]); 
	} 

	//添加随机杂色 
	for($i=0; $i<100; $i++) { 
		$color = imagecolorallocate($im, rand(50,220), rand(50,220), rand(50,220)); 
		imagesetpixel($im, rand(0,70), rand(0,20), $color); 
	} 

	//将验证码存入$_SESSION中 
	$_SESSION["verify"] = $verify; 

	//输出图片并释放缓存 
	header("Content-type: image/png"); 
	imagepng($im); 
	imagedestroy($im); 
	} 
}
// 使用方法
$verify = new Verify;
$verify->show();
?>

本文只是简单实现了随机图片验证码,如果你想定制自己的图片样式,只需要根据注释中的语句,调整颜色即可。


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.