PHP 필터
데이터 검증 = 데이터가 올바른 형식인지 확인합니다.
데이터 삭제 = 데이터에서 잘못된 문자를 제거합니다.
PHP 필터 확장
PHP 필터는 외부 입력의 유효성을 검사하고 삭제하는 데 사용됩니다.
PHP 필터 확장에는 사용자 입력을 확인하는 데 필요한 많은 기능이 있으며 데이터 유효성 검사를 더 쉽고 빠르게 할 수 있도록 설계되었습니다.
이 filter_list()
함수는 PHP 필터 확장이 제공하는 것을 나열하는 데 사용할 수 있습니다.
예시
<table>
<tr>
<td>Filter Name</td>
<td>Filter ID</td>
</tr>
<?php
foreach (filter_list() as $id =>$filter) {
echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
}
?>
</table>
필터를 사용하는 이유
많은 웹 애플리케이션은 외부 입력을 받습니다. 외부 입력/데이터는 다음과 같을 수 있습니다.
- 양식에서 사용자 입력
- 쿠키
- 웹 서비스 데이터
- 서버 변수
- 데이터베이스 쿼리 결과
항상 외부 데이터의 유효성을 검사해야 합니다!
유효하지 않은 제출 데이터는 보안 문제를 야기하고 웹페이지를 손상시킬 수 있습니다!
PHP 필터를 사용하면 애플리케이션이 올바른 입력을 받는지 확인할 수 있습니다!
PHP filter_var() 함수
이 filter_var()
함수는 데이터의 유효성을 검사하고 삭제합니다.
이 filter_var()
함수는 지정된 필터를 사용하여 단일 변수를 필터링합니다. 두 가지 데이터가 필요합니다.
- 확인하려는 변수
- 사용할 수표 유형
문자열 살균
다음 예제에서는 filter_var()
함수를 사용하여 문자열에서 모든 HTML 태그를 제거합니다.
예시
<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
정수 검증
다음 예제에서는 filter_var()
함수를 사용하여 $int 변수가 정수인지 확인합니다. $int가 정수이면 아래 코드의 출력은 "정수는 유효합니다"입니다. $int가 정수가 아니면 출력은 "Integer is not valid"가 됩니다.
예시
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
팁: filter_var() 및 0 문제
위의 예에서 $int가 0으로 설정된 경우 위의 함수는 "정수가 유효하지 않습니다"를 반환합니다. 이 문제를 해결하려면 아래 코드를 사용하십시오.
예시
<?php
$int = 0;
if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
IP 주소 확인
다음 예제에서는 filter_var()
함수를 사용하여 $ip 변수가 유효한 IP 주소인지 확인합니다.
예시
<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
echo("$ip is a valid IP address");
} else {
echo("$ip is not a valid IP address");
}
?>
이메일 주소 삭제 및 검증
다음 예제에서는 filter_var()
함수를 사용하여 먼저 $email 변수에서 모든 잘못된 문자를 제거한 다음 유효한 이메일 주소인지 확인합니다.
예시
<?php
$email = "[email protected]";
// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
?>
URL 삭제 및 검증
다음 예제에서는 filter_var()
함수를 사용하여 먼저 URL에서 모든 잘못된 문자를 제거한 다음 $url이 유효한 URL인지 확인합니다.
예시
<?php
$url = "https://www.w3schools.com";
// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);
// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url is a valid URL");
} else {
echo("$url is not a valid URL");
}
?>
완전한 PHP 필터 참조
모든 필터 기능에 대한 전체 참조를 보려면 전체 PHP 필터 참조로 이동하십시오. 각 필터를 확인하여 사용 가능한 옵션과 플래그를 확인하세요.
참고문헌에는 각 기능에 대한 간단한 설명과 사용 예가 포함되어 있습니다!