Heim  >  Artikel  >  Backend-Entwicklung  >  PHP生成随机图片验证码类分享

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

WBOY
WBOYOriginal
2016-06-20 13:01:061201Durchsuche

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();
?>

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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn