최고의 PHP 필터 튜토리얼 2024년, 이 튜토리얼에서는 PHP는 필터 란 무엇인가?,왜 필터를 사용할 수 있습니까?,기능 및 필터,유효성 검사 및 살균,옵션 및 플래그,유효성 검사 입력,예를 설명,정화 입력,예를 설명,입력 필터 복수,예를 설명,사용 필터 콜백,예를 설명,를 배울 수 있습니다.

PHP 필터

PHP 필터는 검증 및 사용자 입력과 같은 안전하지 않은 소스에서 데이터를 필터링하는 데 사용됩니다.


PHP는 필터 란 무엇인가?

PHP 필터를 확인하고 안전하지 않은 소스에서 데이터를 필터링하는 데 사용됩니다.

테스트 및 검증 필터의 사용자 입력 또는 사용자 데이터가 모든 웹 응용 프로그램의 중요한 부분이다.

PHP 필터 확장은 데이터를 쉽고 빠르게 필터링하도록 설계되었습니다.


왜 필터를 사용할 수 있습니까?

거의 모든 웹 응용 프로그램은 외부 입력에 따라 달라집니다. 이 데이터는 일반적으로 사용자 또는 (예 : 웹 서비스와 같은) 다른 응용 프로그램에서 왔습니다. 필터를 사용하면 응용 프로그램이 올바른 입력 유형을 얻을 수 있도록 할 수 있습니다.

당신 외부 데이터 필터링 항상해야!

입력 필터링은 가장 중요한 애플리케이션 보안 문제이다.

외부 데이터 무엇입니까?

  • 폼에서 입력 데이터
  • 쿠키
  • 웹 서비스 데이터
  • 서버 변수
  • 데이터베이스 쿼리 결과

기능 및 필터

변수를 필터링하기 위해, 다음의 필터 기능을 사용

  • filter_var은 () - 지정된 필터에 의해 하나의 변수를 필터링하기
  • filter_var_array은 () - 동일하거나 상이한 필터가 여러 변수를 필터링 할
  • filter_input - 하나의 입력 변수를 확인하고 그것을 필터링
  • filter_input_array - 기타 입력 변수를 취득하고, 동일하거나 상이한 필터가이를 필터링

다음 예제에서, 우리는 filter_var를 () 함수는 정수의 유효성을 검사 사용

<?php
$int = 123;

if(!filter_var($int, FILTER_VALIDATE_INT))
{
	echo("不是一个合法的整数");
}
else
{
	echo("是个合法的整数");
}
?>

위의 코드는 변수를 필터링 할 "FILTER_VALIDATE_INT"필터를 사용합니다. 정수가 합법적 인, 그래서 때문에 위의 코드가 출력 :

우리가 (예 : "123ABC"로) 정수가 아닌 변수를 사용하려고하면, 출력은 "정수가 유효하지 않습니다."

기능 및 필터의 전체 목록을 보려면, 우리의 방문 PHP 필터 참조 설명서를 .


유효성 검사 및 살균

필터의 두 가지 종류가 있습니다 :

필터 유효성 검사 :

  • 사용자 입력의 유효성을 검사하는 데 사용
  • (URL 또는 이메일 확인 등) 엄격한 형식 규칙
  • 성공하면, 예상되는 반환 형식, 그것은 FALSE 반환하지 않으면

필터를 살균 :

  • 그것은 허용하거나 지정된 문자열을 금지하는 데 사용
  • 데이터 포맷 규칙 없음
  • 항상 문자열을 반환

옵션 및 플래그

옵션 및 플래그가 지정된 필터를 추가 필터링 옵션을 추가하는 데 사용된다.

다른 필터는 서로 다른 옵션과 플래그가 있습니다.

다음 예에서, 우리는 정수를 확인하기 위해 filter_var ()와 "min_range"와 "max_range"옵션을 사용합니다 :

<?php
$var=300;

$int_options = array(
	"options"=>array
	(
		"min_range"=>0,
		"max_range"=>256
	)
);

if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
{
	echo("不是一个合法的整数");
}
else
{
	echo("是个合法的整数");
}
?>

관련 옵션으로 위의 코드는 "옵션"에서라는 배열에 배치해야합니다처럼. 플래그는 어레이 내에 필요하지 않은 경우.

정수는 "300"이기 때문에, 지정된 범위 내에없는 코드의 출력은 상기 한 것이다 :

不是一个合法的整数

기능 및 필터의 전체 목록을 보려면, 우리의 방문 PHP 필터 참조 설명서를 . 각 필터 및 플래그에 사용할 수있는 옵션이 볼 수 있습니다.


유효성 검사 입력

의 양식에서 입력을 검증 해보자.

우리는 제일 먼저 입력 데이터는 우리가 찾고있는 것을 확인하는 것입니다 할 필요가있다.

그럼 우리가 입력 한 데이터를 필터링 할 filter_input () 함수를 사용합니다.

아래의 예에서, 입력 변수의 "이메일"은 PHP 페이지에 전달된다 :

<?php
if(!filter_has_var(INPUT_GET, "email"))
{
	echo("没有 email 参数");
}
else
{
	if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
	{
		echo "不是一个合法的 E-Mail";
	}
	else
	{
		echo "是一个合法的 E-Mail";
	}
}
?>

다음 상기 결과로서는 같다 :

예를 설명

위의 예는 (이메일) 전송의 방법 "GET"에 의한 입력 변수가 있습니다 :

  1. "이메일"입력 변수 "GET"타입의 존재를 감지
  2. 유효한 이메일 주소인지 여부를 검출하기 위해 입력 변수가 있으면

정화 입력

의 양식의 URL에서 오는 정리 해보자.

우선, 우리는 입력 데이터는 우리가 찾고있는 것을 확인해야합니다.

그 다음 우리는 입력 데이터 filter_input () 함수를 소독.

아래의 예에서, 입력 변수 "URL"은 PHP 페이지에 전달된다 :

<?php
if(!filter_has_var(INPUT_GET, "url"))
{
	echo("没有 url 参数");
}
else
{
	$url = filter_input(INPUT_GET, 
	"url", FILTER_SANITIZE_URL);
	echo $url;
}
?>

예를 설명

하나의 입력 변수 (URL)에 의해 위의 예는 방법 보내 "GET"는 :

  1. "URL"입력 변수 "GET"타입의 존재를 감지
  2. 입력 변수가 존재하는 경우, 그 정제 (잘못된 문자 제거)하고 $ URL 변수에 저장한다

입력 변수가이 같은 문자열 인 경우 : "http://www.ruaanoob.com/"다음과 같이 정제 후에는 $ url 변수는 다음과 같습니다



입력 필터 복수

양식은 종종 여러 개의 입력 필드로 구성되어 있습니다. 반복적으로 호출 filter_var 나 filter_input 기능을 방지하기 위해, 우리는 filter_input_array의 filter_var_array 또는 기능을 사용할 수 있습니다.

이 경우는 세 GET 변수를 필터링 filter_input_array () 함수를 사용한다. GET 변수를 수신 이름, 나이, 이메일 주소 :

<?php
$filters = array
(
	"name" => array
	(
		"filter"=>FILTER_SANITIZE_STRING
	),
	"age" => array
	(
		"filter"=>FILTER_VALIDATE_INT,
		"options"=>array
		(
			"min_range"=>1,
			"max_range"=>120
		)
	),
	"email"=> FILTER_VALIDATE_EMAIL
);

$result = filter_input_array(INPUT_GET, $filters);

if (!$result["age"])
{
	echo("年龄必须在 1 到 120 之间。<br>");
}
elseif(!$result["email"])
{
	echo("E-Mail 不合法<br>");
}
else
{
	echo("输入正确");
}
?>

예를 설명

위의 예는 "GET"메소드를 통해 전송 된 세 개의 입력 변수 (이름, 나이, 이메일)가 있습니다 :

  1. 입력 변수와 필터를 지정하는 데 사용되는 입력 변수의 이름을 포함하는 배열을 설정
  2. GET 변수 그냥 설정 배열 통화 filter_input_array 포함 () 함수, 입력 매개 변수,
  3. 검출 $ 결과 변수 "연령"과 "이메일"입력 변수는 불법입니다. (사용 filter_input_array () 함수 이후에 잘못된 입력이 있으면, 상기 입력 변수는 FALSE이다.)

filter_input_array () 함수에 두 번째 인수는 배열 또는 단일 필터 ID가 될 수 있습니다.

상기 파라미터는 하나의 필터 ID 인 경우, 지정된 필터가 모든 입력 배열 값을 필터링한다.

이 매개 변수가 배열 인 경우, 배열은 다음과 같은 규칙을 준수해야합니다 :

  • 입력 변수를 포함하는 연관 배열이어야합니다 (예 : "나이"입력 변수로) 배열 키입니다
  • 이 배열의 값을 필터 ID, 또는 상기 필터의 규정 플래그 및 옵션 어레이이어야

사용 필터 콜백

FILTER_CALLBACK 필터를 사용하면, 사용자 정의 함수를 호출 할 수 있습니다 사용하는 필터로 사용합니다. 따라서, 우리는 데이터 필터링을 완벽하게 제어 할 수 있습니다.

당신은 사용자 정의 함수를 만들거나 기존의 PHP 기능을 사용할 수 있습니다.

당신은 방법을 미리 정해진 규정에 지정된 옵션에 따라, 필터 기능을 사용할 준비가 될 것입니다. 이름 "옵션"으로 연관 배열합니다.

다음 예에서, 우리는 공간으로 변환 "_"모든 사용자 정의 기능을 사용 :

<?php
function convertSpace($string)
{
	return str_replace("_", ".", $string);
}

$string = "www_w3big_com!";

echo filter_var($string, FILTER_CALLBACK,
array("options"=>"convertSpace"));
?>

상기 코드의 결과는 다음이다 :

예를 설명

위의 예는 모든 "_"로 "". :

  1. A는 "_"로 대체 만들려면 "."기능을
  2. 우리의 함수를 포함 FILTER_CALLBACK 필터 어레이 파라미터들 통화 filter_var () 함수
PHP 필터
10/30