Home > Backend Development > PHP Tutorial > PHP生成随机图片验证码类分享

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

WBOY
Release: 2016-06-20 13:01:06
Original
1216 people have browsed it

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

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


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template