PHP의 FILTER_SANITIZE_NUMBER_INT 상수는 입력값에서 숫자와 관련 없는 불법 문자를 모두 제거하는 데 사용되는 필터입니다.
FILTER_SANITIZE_NUMBER_INT란?
이 필터는 문자열에서 숫자(int) 형식과 관련된 문자만 남기고 나머지를 삭제합니다. 구체적으로 다음과 같은 문자가 허용됩니다.
- 숫자 0~9
- 덧셈 기호(+) 및 뺄셈 기호(-)
그 외의 모든 문자는 필터링 과정에서 자동으로 제거됩니다. 사용자 입력값에서 숫자 데이터만 안전하게 추출하고 싶을 때 유용합니다.
반환값
filter_var() 함수와 함께 사용하면 정리(sanitize)된 문자열을 반환합니다. 참고로 상수 자체는 값만 담고 있으며, 실제 필터링은 filter_var() 함수가 수행합니다.
사용 예제
<?php
$var = "4-5+9p";
var_dump(filter_var($var, FILTER_SANITIZE_NUMBER_INT));
?>
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
string(5) "4-5+9"
결과 분석
입력값 "4-5+9p"에서 알파벳 'p'는 숫자 표현에 허용되지 않는 문자이므로 제거되었습니다. 따라서 최종적으로 숫자와 부호만 남은 "4-5+9"라는 5글자 문자열이 반환됩니다.
이처럼 FILTER_SANITIZE_NUMBER_INT는 폼 입력값 검증, 데이터 클렌징 등에서 숫자 형태의 데이터를 확보할 때 간편하게 활용할 수 있습니다.