
filter_input 함수는 PHP에서 입력 데이터를 필터링하는 데 사용됩니다. 이 함수는 다양한 필터 타입을 지원하며, 각 필터 타입은 특정 형식의 데이터를 필터링하거나_SANITIZE합니다.
REQUEST와 SERVER 변수에 대한 필터링은 다음과 같이 사용할 수 있습니다.
- REQUEST 변수: filter_input(INPUT_REQUEST, '변수명', FILTER_SANITIZE_STRING)
- SERVER 변수: filter_input(INPUT_SERVER, '변수명', FILTER_SANITIZE_STRING)
이 필터 타입을 사용할 때, 데이터는 문자열 형식이어야 합니다.
예를 들어, EMAIL 타입을 사용할 때, 이메일 주소 형식에 맞는 입력 데이터는 다음과 같은 형식이어야 합니다.
- 사용자 이름: 예를 들어, "john"
- 도메인 이름: 예를 들어, "example.com"
- 도메인 확장자: 예를 들어, ".com" 또는 ".org"
이메일 주소 형식에 맞는 입력 데이터는 다음과 같은 형식이어야 합니다.
- "john@example.com"
- "john@example.org"
FILTER_SANITIZE_EMAIL, FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_NUMBER_INT, FILTER_SANITIZE_NUMBER_FLOAT 등과 같은 필터 타입의 차이점은 다음과 같습니다.
- FILTER_SANITIZE_EMAIL: 이메일 주소 형식의 데이터를_SANITIZE합니다.
- FILTER_SANITIZE_ENCODED: URL 인코딩 형식의 데이터를_SANITIZE합니다.
- FILTER_SANITIZE_NUMBER_INT: 정수 형식의 데이터를_SANITIZE합니다.
- FILTER_SANITIZE_NUMBER_FLOAT: 실수 형식의 데이터를_SANITIZE합니다.
이러한 필터 타입을 사용하여 데이터를 필터링하고, 데이터가 필터링에 성공적으로 통과할 때, 그 데이터를 반환하기 위해서는 filter_input 함수의 두 번째 매개 변수인 FILTER_SANITIZE_EMAIL, FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_NUMBER_INT, FILTER_SANITIZE_NUMBER_FLOAT 등과 같은 필터 타입을 사용하면 됩니다.
예를 들어, 이메일 주소 형식의 데이터를 필터링하고, 데이터가 필터링에 성공적으로 통과할 때, 그 데이터를 반환하기 위해서는 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if ($email !== false) {
echo $email;
}
이러한 필터 타입을 사용하여 데이터를 필터링하는 과정에서 발생할 수 있는 에러를 처리하기 위해서는 try-catch 블록을 사용할 수 있습니다.
예를 들어, 이메일 주소 형식의 데이터를 필터링하는 과정에서 발생할 수 있는 에러를 처리하기 위해서는 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
try {
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if ($email !== false) {
echo $email;
} else {
throw new Exception('이메일 주소 형식이 올바르지 않습니다.');
}
} catch (Exception $e) {
echo $e->getMessage();
}
이러한 필터 타입을 사용하여 데이터를 필터링하는 데 사용할 수 있는 필터 타입은 다음과 같습니다.
- FILTER_VALIDATE_EMAIL: 이메일 주소 형식의 데이터를 필터링합니다.
- FILTER_SANITIZE_EMAIL: 이메일 주소 형식의 데이터를_SANITIZE합니다.
- FILTER_SANITIZE_ENCODED: URL 인코딩 형식의 데이터를_SANITIZE합니다.
- FILTER_SANITIZE_NUMBER_INT: 정수 형식의 데이터를_SANITIZE합니다.
- FILTER_SANITIZE_NUMBER_FLOAT: 실수 형식의 데이터를_SANITIZE합니다.
2025-04-29 03:54