ホームページ  >  記事  >  バックエンド開発  >  PHP はランダムな画像検証コードのクラス共有を生成します

PHP はランダムな画像検証コードのクラス共有を生成します

WBOY
WBOYオリジナル
2016-06-20 13:01:061120ブラウズ

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 までご連絡ください。