PHP의 filter_id() 함수는 지정한 필터 이름에 해당하는 필터 ID를 반환하는 함수입니다. 이 함수는 PHP Filter 확장 모듈에서 제공하며, 유효성 검사나 데이터 정제 작업 시 특정 필터를 숫자 ID로 참조해야 할 때 유용하게 사용됩니다.
문법 (Syntax)
filter_id(filtername)
매개변수 (Parameters)
filtername − 필터 ID를 가져올 대상 필터의 이름입니다. 예를 들어 'validate_email', 'string', 'int' 등이 있습니다.
반환값 (Return)
filter_id() 함수는 성공 시 해당 필터의 ID(정수)를 반환하고, 존재하지 않는 필터 이름을 전달하면 FALSE를 반환합니다.
예제 (Example)
아래 예제는 filter_list() 함수로 사용 가능한 모든 필터 목록을 순회하면서, 각 필터 이름과 그에 대응하는 필터 ID를 함께 출력합니다.
<?php
foreach (filter_list() as $id =>$filter) {
echo $filter . "=" . filter_id($filter) . "<br>";
}
?>출력 결과 (Output)
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
int = 257 boolean = 258 float = 259 validate_regexp = 272 validate_domain = 277 validate_url = 273 validate_email = 274 validate_ip = 275 validate_mac = 276 string = 513 stripped = 513 encoded = 514 special_chars = 515 full_special_chars = 522 unsafe_raw = 516 email = 517 url = 518number_int = 519 number_float = 520 magic_quotes = 521 callback = 1024
참고 사항
필터 ID는 크게 세 그룹으로 나뉩니다. 257~259번대는 기본 타입 검사용 필터(int, boolean, float), 270번대는 유효성 검사용 필터(validate_* 계열), 500번대 이후는 데이터 정제(sanitization)용 필터입니다. 또한 filter_id()는 존재하지 않는 필터 이름에 대해 FALSE를 반환하므로, 실무에서는 반환값을 반드시 검증한 후 사용하는 것이 안전합니다.