Maison > développement back-end > tutoriel php > PHP génère un code de vérification de chiffres spécifié et des éléments d'interférence contrôlables Partie 2

PHP génère un code de vérification de chiffres spécifié et des éléments d'interférence contrôlables Partie 2

不言
Libérer: 2023-03-24 14:48:01
original
1701 Les gens l'ont consulté

Cet article présente le deuxième article sur PHP générant un code de vérification à chiffres spécifié et des éléments d'interférence contrôlables. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Générer un code de vérification. : Le nom du fichier est : buildVerifyCode.func.php

<?php
//生成指定位数可控混合验证码
function buildVerifyCode($type,$length){
	//$type0,1,2可以为数字,大小写字母,数字加大小写字母验证码
	//$length指定了验证码的长度
	switch($type){
		case 0:
		$string=join(&#39;&#39;,range(0,9));
		break;
		case 1:
	//range(&#39;a&#39;,&#39;z&#39;)将括号中的内容作为键值生成一个索引数组
	//array_merge($array1,$array2)合并两个数组中的键值,生成新索引数组
	//join(&#39;&#39;,$array)以空连接数组中的值,以数组的内容生成字符串
		$string=join(&#39;&#39;,array_merge(range(&#39;a&#39;,&#39;z&#39;),range(&#39;A&#39;,&#39;Z&#39;)));
		break;
		case 2:
		$string=join(&#39;&#39;,array_merge(range(&#39;a&#39;,&#39;z&#39;),range(&#39;A&#39;,&#39;Z&#39;),range(0,9)));
		break;
	}
//str_shuffle打乱字符串,返回值是字符串,不像shuffle,返回值是bool
	$string=str_shuffle($string);
	//substr截取$length位数的验证码
	return substr($string,0,$length);
}
Copier après la connexion


Générer le code de vérification de l'image : Le nom du fichier est : getVerifyCode.func.php

<?php
function getVerifyCodeImg($type=2,$length=4,$pixel=false,$line=false){
$width=100;
$height=30;
//新建画布,默认黑色底色
$image=imagecreatetruecolor($width,$height);
//新建白色,用于后面覆盖黑色的底色
$white=imagecolorallocate($image,255,255,255);
//新建白色矩形区域,覆盖原始画布
imagefilledrectangle($image,1,1,$width-1,$height-1,$white);
//引入文件
require &#39;buildVerifyCode.func.php&#39;;
//调用buildVerifyCode方法
$chars=buildVerifyCode($type,$length);
for($i=0;$i<$length;$i++){
	$size=mt_rand(14,16);
	$angle=mt_rand(-15,15);
	$x=(100/$length)*$i;
	$y=mt_rand(20,25);
	$color=imagecolorallocate($image,mt_rand(70,100),mt_rand(50,120),mt_rand(70,130));
	$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,4)];
	$text=substr($chars,$i,1);
	imagettftext($image,$size,$angle,$x,$y,$color,$fontfile,$text);
}

if($pixel){
	for($i=0;$i<$pixel;$i++){
		$color=imagecolorallocate($image,mt_rand(150,160),mt_rand(140,170),mt_rand(130,200));
		imagesetpixel($image,mt_rand(0,$width-1),mt_rand(0,$height-1),$color);
	}
}
if($line){
	for($i=0;$i<$line;$i++){
	$color=imagecolorallocate($image,mt_rand(150,180),mt_rand(110,170),mt_rand(140,190));
	imageline($image,mt_rand(0,$width-2),mt_rand(0,$height-3),mt_rand(0,$width-4),mt_rand(0,$height-5),$color);
	}
}

header(&#39;content-type:image/png&#39;);
imagepng($image);
}
Copier après la connexion


Code de vérification d'appel : nom de fichier : getVerifyImg.php

<?php
// 测试
// require &#39;buildVerifyCode.func.php&#39;;
// echo buildVerifyCode(2,4);
require &#39;getVerifyCodeImg.php&#39;;
/**
 * $type验证码类型,1为纯数字,2为大小写字母,3为数字加大小写字母
 * $length验证码长度,建议设置区间为4-6
 * $pixel干扰元素小点,建议设置200
 * $line干扰元素线条,建议设置4
 * getVerifyCodeImg($type,$length,$pixel,$line);
 */
getVerifyCodeImg(2,6,200,4);
Copier après la connexion

Recommandations associées :

PHP génère le bit spécifié Vérification numérique code et éléments d'interférence contrôlables

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal