Heim  >  Artikel  >  Backend-Entwicklung  >  PHP generiert Verifizierungscodes mit vorgegebenen Ziffern und kontrollierbaren Störelementen

PHP generiert Verifizierungscodes mit vorgegebenen Ziffern und kontrollierbaren Störelementen

不言
不言Original
2018-04-20 14:57:231701Durchsuche

Dieser Artikel stellt den Inhalt von PHP vor, um einen bestimmten Ziffernüberprüfungscode und kontrollierbare Interferenzelemente zu generieren. Jetzt kann ich ihn mit Ihnen teilen.

Generieren Sie einen Hybrid Verifizierungscode und in eine Funktion gekapselt, Dateiname: buildVerifyCode.func.php

	//range('a','z')将括号中的内容作为键值生成一个索引数组
	//array_merge($array1,$array2)合并两个数组中的键值,生成新索引数组
	//array_flip()将括号中的内容,键名与键值对换
	//array_rand($array,$length)随机取出$array中$length长度的键名作为新数组的键值,生成一个索引数组
	//join('',$array)以空连接数组中的值,以数组的内容生成字符串
<?php
function buildVerifyCode($type=2,$length=4){
switch ($type) {
	case 0:
	$string=join(&#39;&#39;,array_rand(range(0,9),$length));
	break;
	case 1:
	$string=join(&#39;&#39;,array_rand(array_flip(array_merge(range(&#39;a&#39;,&#39;z&#39;),range(&#39;A&#39;,&#39;Z&#39;))),$length));
	break;
	case 2:
	$string=join(&#39;&#39;,array_rand(array_flip(array_merge(range(&#39;a&#39;,&#39;z&#39;),range(&#39;A&#39;,&#39;Z&#39;),range(0,9))),$length));
	break;
}
return $string;
}


Testen Sie, ob der generierte Verifizierungscode korrekt ist, Dateiname: getCode .php

<?php
require &#39;buildVerifyCode.func.php&#39;;
echo buildVerifyCode();
// 	$fontfiles=[&#39;msyh.ttc&#39;,&#39;msyhbd.ttc&#39;,&#39;msyhl.ttc&#39;,&#39;simsun.ttc&#39;,&#39;Sitka.ttc&#39;];
// 	$fontfile=$fontfiles[mt_rand(0,count($fontfiles)-1)];
// var_dump($fontfile);

Bildverifizierungscode generieren, spezifische Kommentare schreiben, wenn Sie Zeit haben, Dateiname: getVerifyCodeImg.func.php

<?php
$width=100;
$height=30;
//创建画布,默认底色黑色,rgb0,0,0
$image=imagecreatetruecolor($width,$height);
//创建白色,方便覆盖画布
$white=imagecolorallocate($image,255,255,255);
//创建白色矩形覆盖原始画布
imagefilledrectangle($image,1,1,$width-2,$height-2,$white);
require &#39;buildVerifyCode.func.php&#39;;
$type=2;
$length=4;
$verifyCode=buildVerifyCode($type,$length);
for($i=0;$i<$length;$i++){
	$color=imagecolorallocate($image,mt_rand(50,90),mt_rand(80,200),mt_rand(90,150));
	$size=mt_rand(14,16);
	$angle=mt_rand(-15,15);
	$x=($i*100/5)+$size;
	$y=mt_rand(20,25);
	$fontfiles=[&#39;msyh.ttc&#39;,&#39;msyhbd.ttc&#39;,&#39;msyhl.ttc&#39;,&#39;simsun.ttc&#39;,&#39;Sitka.ttc&#39;];
	$fontfile="../fonts/".$fontfiles[mt_rand(0,count($fontfiles)-1)];
	$text=substr($verifyCode,$i,1);
	imagettftext($image,$size,$angle,$x,$y,$color,$fontfile,$text);
}
$pixel=120;
if($pixel){
	$pixelcolor=imagecolorallocate($image,mt_rand(150,170),mt_rand(100,140),mt_rand(90,160));
	for($i=0;$i<$pixel;$i++){
		imagesetpixel($image,mt_rand(0,$width-1),mt_rand(0,$height-1),$pixelcolor);
	}
}
$line=4;
if($line){
	for($i=0;$i<$line;$i++){
		imageline($image,mt_rand(0,$width-1),mt_rand(0,$height-1),mt_rand(0,$width-1),mt_rand(0,$height-1),$pixelcolor);
	}
}

header(&#39;content-type:image/png&#39;);
imagepng($image);
imagedestroy($image);

Verwandte Empfehlungen:

PHP generiert eine Word-Datei

PHP generiert Sprache

Das obige ist der detaillierte Inhalt vonPHP generiert Verifizierungscodes mit vorgegebenen Ziffern und kontrollierbaren Störelementen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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