PHP의 filter_var 함수는 데이터를 필터링하고, 데이터의 유효성을 검사하는 데 사용되는 함수입니다.
이 함수는 여러 가지 필터를 사용하여 데이터의 유효성을 검사하거나, 데이터를 특정 형식으로 정제하는 데 활용할 수 있습니다.
filter_var() - 지정된 필터로 변수를 필터링합니다.
filter_var(mixed $value, int $filter=FILTER_DEFAULT, array|int $options = 0): mixed
- $value: 필터링하거나 검사할 값
- $filter: 사용할 필터의 ID
- $options: 필터에 추가적인 옵션을 제공(필터에 따라 사용하는 옵션이 다릅니다)
Filter
검증 필터
|
설명
|
FILTER_VALIDATE_BOOLEAN
|
해당 변수가 "1", "true", "on", "yes"인 경우에만 true를 반환하고, 나머지는 전부 false를 반환함.
|
FILTER_VALIDATE_EMAIL
|
해당 변수가 유효한 이메일 주소인지를 검증함.
|
FILTER_VALIDATE_FLOAT
|
해당 변수가 float 타입인지를 검증함.
|
FILTER_VALIDATE_INT
|
해당 변수가 int 타입인지를 검증함.
|
FILTER_VALIDATE_IP
|
해당 변수가 유효한 IP 주소인지를 검증함.
|
FILTER_VALIDATE_MAC
|
해당 변수가 유효한 MAC 주소인지를 검증함.
|
FILTER_VALIDATE_REGEXP
|
해당 변수를 펄 호환 정규 표현식(Perl-Compatible Regular Expression, PCRE)으로 검증함.
|
FILTER_VALIDATE_URL
|
해당 변수가 유효한 URL 주소인지를 검증함.
|
https://www.php.net/manual/en/filter.filters.validate.php
- URL 유효성 검사
$url = "http://www.example.com";
if (filter_var($url, FILTER_VALIDATE_URL)) {
echo "유효한 URL입니다.";
} else {
echo "유효하지 않은 URL입니다.";
}
- 이메일 유효성 검사
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "유효한 이메일 주소입니다.";
} else {
echo "유효하지 않은 이메일 주소입니다.";
}
- IP 주소 검사
if (filter_var($ip, FILTER_VALIDATE_IP)) {
echo "유효한 IP 주소입니다.";
} else {
echo "유효하지 않은 IP 주소입니다.";
}
- 정수 검사 및 범위 제한
$options = ["options" => ["min_range" => 1, "max_range" => 100]];
if (filter_var($number, FILTER_VALIDATE_INT, $options) !== false) {
echo "유효한 숫자입니다.";
} else {
echo "유효하지 않은 숫자입니다.";
}
- 문자열 태그 제거
$str = "<h1>Hello World!</h1>";
$newStr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newStr; // 출력: Hello World!
- Boolean 값으로 변환
$var = "yes";
$bool = filter_var($var, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
if ($bool !== null) {
echo $bool ? "True" : "False"; // 출력: True
} else {
echo "유효하지 않은 boolean 값입니다.";
}
특정 값이 true로 간주될 수 있는지 여부를 검사할 때 사용합니다. 'yes', 'true', '1'과 같은 값은 true로 변환됩니다.
- 고급 옵션 사용 예시
$age = "20";
$options = array(
"options" => array(
"default" => 0, // 값이 유효하지 않을 때 반환되는 기본값
"min_range" => 1,
"max_range" => 100
)
);
$validatedAge = filter_var($age, FILTER_VALIDATE_INT, $options);
echo $validatedAge; // 출력: 20
정수 유효성 검사를 수행하면서 범위를 지정하고, 기본 값을 설정하는 등의 고급 옵션을 사용할 수 있습니다.
주의할 점
filter_var 힘수는 불리언, 정수, 문자열과 같은 단일 값을 검사하거나 필터링 하는데 사용됩니다.
배열과 같은 복잡한 타입을 검사하려면 filter_var_array 함수를 사용해야 합니다.
어떤 필터들은 엄격한 유효성 검사를 수행하는 반면, 다른 필터들은 더 관대할 수 있습니다.
따라서 사용하는 필터의 문서를 잘 읽고, 어떻게 데이터가 처리될지 이해하는 것이 중요합니다.
Manual Filter: https://www.php.net/manual/en/filter.filters.validate.php
Manual filter_var: https://www.php.net/manual/en/function.filter-var.php
PHP: Validate filters - Manual
Contrary to what documentation implies, the FILTER_NULL_ON_FAILURE seem to affect any validation filter, not just FILTER_VALIDATE_BOOLEAN. I've been using that since PHP 5.2, and as of PHP 5.6.8 it still works. I have no clue if it's a blug or if it is as
www.php.net
PHP: filter_var - Manual
note that FILTER_VALIDATE_BOOLEAN tries to be smart, recognizing words like Yes, No, Off, On, both string and native types of true and false, and is not case-sensitive when validating strings. outputs:'on': bool(true)'On': bool(true)'ON': bool(true)'off':
www.php.net
filter_var_array: https://devlevel1.tistory.com/26
[PHP] filter_var_array 데이터 검증 처리하기
filter_var_array() 함수는 PHP에서 여러 변수를 동시에 검증하고 필터링할 수 있는 유용한 기능입니다. 이 함수는 배열의 각 요소를 지정된 필터로 처리하여, 필터링되거나 검증된 데
devlevel1.tistory.com
'Language > PHP' 카테고리의 다른 글
[PHP] filter_var_array 데이터 검증 처리하기 (0) | 2024.05.02 |
---|