FILTER_SANITIZE_ENCODED 상수는 PHP 필터 기능 중 하나로, URL 인코딩 방식과 동일하게 특수 문자를 인코딩하는 역할을 합니다. 주로 사용자 입력값을 안전하게 처리하거나 URL에 포함시킬 데이터를 준비할 때 유용하게 사용됩니다.
사용 가능한 플래그와 옵션
FILTER_SANITIZE_ENCODED 상수는 다음과 같은 플래그와 함께 사용할 수 있습니다.
- FILTER_FLAG_STRIP_LOW — ASCII 값이 32보다 작은 문자를 제거합니다.
- FILTER_FLAG_STRIP_HIGH — ASCII 값이 127보다 큰 문자를 제거합니다.
- FILTER_FLAG_ENCODE_LOW — ASCII 값이 32보다 작은 문자를 인코딩합니다.
- FILTER_FLAG_ENCODE_HIGH — ASCII 값이 127보다 큰 문자를 인코딩합니다.
반환값
FILTER_SANITIZE_ENCODED는 일반적으로 filter_var() 함수와 함께 사용되며, 필터링된 문자열을 반환합니다. 단독으로 사용하는 경우에는 별도의 값을 반환하지 않습니다.
예제 1: FILTER_FLAG_STRIP_HIGH 플래그 활용
다음은 FILTER_FLAG_STRIP_HIGH 플래그를 사용하여 ASCII 값이 127보다 큰 문자를 제거하는 예제입니다.
<?php
$url = "wwwÅ.exampleÅ.com";
$url = filter_var($url, FILTER_SANITIZE_ENCODED, FILTER_FLAG_STRIP_HIGH);
echo $url;
?>
출력 결과
www.example.com
A(Å)처럼 ASCII 값이 127보다 큰 확장 문자가 모두 제거되고, 순수한 ASCII 문자만 남은 것을 확인할 수 있습니다.
예제 2: 파운드 기호(£)가 포함된 문자열 처리
또 다른 예제를 살펴보겠습니다. 이번에는 파운드 기호(£)가 포함된 문자열에 동일한 플래그를 적용합니다.
<?php
$url = "example.com££";
$url = filter_var($url, FILTER_SANITIZE_ENCODED, FILTER_FLAG_STRIP_HIGH);
echo $url;
?>
출력 결과
example.com
정리
FILTER_SANITIZE_ENCODED 상수는 특수 문자를 인코딩하여 안전한 문자열을 만드는 데 활용됩니다. 플래그를 조합하면 특정 범위의 ASCII 문자를 제거하거나 인코딩할 수 있으므로, 입력 데이터 검증과 URL 처리 시 유용하게 사용할 수 있습니다.