PHP generates specified digit verification code and controllable interference elements Part 2

不言
Release: 2023-03-24 14:48:01
Original
1654 people have browsed it

The content of this article is about the second article about PHP generating specified digit verification code and controllable interference elements. It has certain reference value. Now I share it with everyone. Friends in need can refer to it

Generate verification code: The file name is: 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);
}
Copy after login


Generate image verification code: The file name is: 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);
}
Copy after login


Call verification code: File name: 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);
Copy after login

Related recommendations:

PHP generates a verification code with specified digits and is controllable Interference elements

The above is the detailed content of PHP generates specified digit verification code and controllable interference elements Part 2. For more information, please follow other related articles on the PHP Chinese website!

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