최고의 PHP 필터 튜토리얼 2024년, 이 튜토리얼에서는 PHP는 필터 란 무엇인가?,왜 필터를 사용할 수 있습니까?,기능 및 필터,유효성 검사 및 살균,옵션 및 플래그,유효성 검사 입력,예를 설명,정화 입력,예를 설명,입력 필터 복수,예를 설명,사용 필터 콜백,예를 설명,를 배울 수 있습니다.
PHP 필터는 검증 및 사용자 입력과 같은 안전하지 않은 소스에서 데이터를 필터링하는 데 사용됩니다.
PHP 필터를 확인하고 안전하지 않은 소스에서 데이터를 필터링하는 데 사용됩니다.
테스트 및 검증 필터의 사용자 입력 또는 사용자 데이터가 모든 웹 응용 프로그램의 중요한 부분이다.
PHP 필터 확장은 데이터를 쉽고 빠르게 필터링하도록 설계되었습니다.
거의 모든 웹 응용 프로그램은 외부 입력에 따라 달라집니다. 이 데이터는 일반적으로 사용자 또는 (예 : 웹 서비스와 같은) 다른 응용 프로그램에서 왔습니다. 필터를 사용하면 응용 프로그램이 올바른 입력 유형을 얻을 수 있도록 할 수 있습니다.
당신 외부 데이터 필터링 항상해야!
입력 필터링은 가장 중요한 애플리케이션 보안 문제이다.
외부 데이터 무엇입니까?
변수를 필터링하기 위해, 다음의 필터 기능을 사용
다음 예제에서, 우리는 filter_var를 () 함수는 정수의 유효성을 검사 사용
<?php $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
위의 코드는 변수를 필터링 할 "FILTER_VALIDATE_INT"필터를 사용합니다. 정수가 합법적 인, 그래서 때문에 위의 코드가 출력 :
우리가 (예 : "123ABC"로) 정수가 아닌 변수를 사용하려고하면, 출력은 "정수가 유효하지 않습니다."
기능 및 필터의 전체 목록을 보려면, 우리의 방문 PHP 필터 참조 설명서를 .
필터의 두 가지 종류가 있습니다 :
필터 유효성 검사 :
필터를 살균 :
옵션 및 플래그가 지정된 필터를 추가 필터링 옵션을 추가하는 데 사용된다.
다른 필터는 서로 다른 옵션과 플래그가 있습니다.
다음 예에서, 우리는 정수를 확인하기 위해 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"에 의한 입력 변수가 있습니다 :
의 양식의 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"는 :
입력 변수가이 같은 문자열 인 경우 : "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"메소드를 통해 전송 된 세 개의 입력 변수 (이름, 나이, 이메일)가 있습니다 :
filter_input_array () 함수에 두 번째 인수는 배열 또는 단일 필터 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")); ?>
상기 코드의 결과는 다음이다 :
위의 예는 모든 "_"로 "". :