PHP는 지정된 숫자 확인 코드 및 제어 가능한 간섭 요소를 생성합니다. 2부

不言
풀어 주다: 2023-03-24 14:48:01
원래의
1659명이 탐색했습니다.

이 글은 특정 숫자 인증 코드와 제어 가능한 간섭 요소를 생성하는 것에 대한 두 번째 글을 소개합니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다.

인증 코드 생성: 파일 이름: 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);
}
로그인 후 복사


이미지 확인 코드 생성: 파일 이름: 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);
}
로그인 후 복사


통화 확인 코드: 파일 이름: 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);
로그인 후 복사

관련 권장 사항:

PHP 생성 지정된 숫자와 제어 가능한 간섭 요소가 포함된 인증 코드

위 내용은 PHP는 지정된 숫자 확인 코드 및 제어 가능한 간섭 요소를 생성합니다. 2부의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿