본문 바로가기
PHP

[PHP] 입력값 검증 방법 (1) filter_var()

by teamnova 2025. 3. 16.
728x90

안녕하세요, 

 

오늘은 php에서 입력값을 검증하는 방법 중 하나인 filter_var() 함수에 대해 알아보겠습니다. 

 

filter_var() 

filter_var() 함수는 php에서 데이터 검증(Validation)에 사용되는 함수입니다. 

 

 

filter_var() 함수 사용법

filter_var($variable, $filter, $options);
  • $variable: 필터링할 값 (예: 변수나 문자열)
  • $filter: 사용할 필터 (예: FILTER_VALIDATE_EMAIL, FILTER_SANITIZE_URL)
  • $options (선택 사항): 필터에 대한 추가 옵션 (예: 정규 표현식, 플래그 등)

 

유효성 검증 (Validation)

유효성 검증은 데이터가 특정 형식에 맞는지 확인하는 작업입니다. 

이때 사용되는 필터들은 "FILTER_VALIDATE_"로 시작하는 다양한 필터들입니다.


- 이메일 검증 (FILTER_VALIDATE_EMAIL) : 이메일이 올바른 형식인지 확인합니다.

$email1 = "example@domain.com";
 $email2 = "exampledomain.com";
 
if (filter_var($email1, FILTER_VALIDATE_EMAIL)) {
        echo "email1 은 올바른 이메일 주소입니다.";
    } else {
        echo "email1 은 잘못된 이메일 주소입니다.";
    }
if (filter_var($email2, FILTER_VALIDATE_EMAIL)) {
        echo "email2 는 올바른 이메일 주소입니다.";
    } else {
        echo "email2 는 잘못된 이메일 주소입니다.";
    }

 

결과값

email1 은 올바른 이메일 주소입니다.email2 는 잘못된 이메일 주소입니다.

 


URL 검증 (FILTER_VALIDATE_URL) : URL이 올바른 형식인지 확인합니다.

 

$url1 = "https://www.example.com";   // 올바른 URL
$url2 = "htp//example";              // 잘못된 URL

// URL 검증
if (filter_var($url1, FILTER_VALIDATE_URL)) {
    echo "url1 은 올바른 URL입니다.<br>";
} else {
    echo "url1 은 잘못된 URL입니다.<br>";
}
if (filter_var($url2, FILTER_VALIDATE_URL)) {
    echo "url2 는 올바른 URL입니다.<br>";
} else {
    echo "url2 는 잘못된 URL입니다.<br>";
}

 

 

결과

url1 은 올바른 URL입니다.
url2 는 잘못된 URL입니다.



IP 주소 검증 (FILTER_VALIDATE_IP) : 주어진 IP 주소가 올바른지 확인합니다.

 

$ip1 = "192.168.1.1";   // 올바른 IP 주소
$ip2 = "999.999.999.999"; // 잘못된 IP 주소

if (filter_var($ip1, FILTER_VALIDATE_IP)) {
    echo "ip1 은 올바른 IP 주소입니다.<br>";
} else {
    echo "ip1 은 잘못된 IP 주소입니다.<br>";
}
if (filter_var($ip2, FILTER_VALIDATE_IP)) {
    echo "ip2 는 올바른 IP 주소입니다.<br>";
} else {
    echo "ip2 는 잘못된 IP 주소입니다.<br>";
}

 

결과

ip1 은 올바른 IP 주소입니다.
ip2 는 잘못된 IP 주소입니다.



정수 검증 (FILTER_VALIDATE_INT) : 값이 정수인지 확인합니다.

$int1 = "25";   // 올바른 정수
$int2 = "25.5";  // 잘못된 정수 (소수점 포함)

if (filter_var($int1, FILTER_VALIDATE_INT)) {
    echo "int1 은 올바른 정수입니다.<br>";
} else {
    echo "int1 은 잘못된 정수입니다.<br>";
}
if (filter_var($int2, FILTER_VALIDATE_INT)) {
    echo "int2 는 올바른 정수입니다.<br>";
} else {
    echo "int2 는 잘못된 정수입니다.<br>";
}

 

결과

int1 은 올바른 정수입니다.
int2 는 잘못된 정수입니다.