Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP FILTER_SANITIZE_STRIPPED 상수 완벽 가이드

FILTER_SANITIZE_STRIPPED란?

FILTER_SANITIZE_STRIPPED 상수는 문자열에서 원치 않는 문자를 제거(strip)하거나 인코딩(encode)하여 데이터를 정화(sanitize)하는 데 사용되는 PHP 필터입니다. 이 상수는 FILTER_SANITIZE_STRING의 별칭(alias)으로, 주로 사용자 입력값에서 HTML 태그나 특수 문자를 걸러낼 때 활용됩니다.

참고로 이 필터는 PHP 8.1부터 공식적으로 지원이 중단(deprecated)되었으므로, 최신 프로젝트에서는 strip_tags() 함수 등의 대체 방법을 사용하는 것이 권장됩니다.

옵션 및 플래그

  • FILTER_FLAG_NO_ENCODE_QUOTES – 작은따옴표(')와 큰따옴표(")를 인코딩하지 않습니다.

  • 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_FLAG_ENCODE_AMP – 앰퍼샌드(&) 문자를 HTML 엔티티 형태로 인코딩합니다.

반환 값

FILTER_SANITIZE_STRIPPED는 하나의 상수일 뿐이므로 그 자체로 아무 값도 반환하지 않습니다. 실제 필터링 결과를 얻으려면 filter_var() 함수에 필터링할 값과 함께 이 상수를 인수로 전달해야 하며, 이때 태그와 불필요한 문자가 제거된 정제된 문자열이 반환됩니다.

사용 예제

다음은 HTML 태그가 포함된 문자열을 FILTER_SANITIZE_STRIPPED 필터로 처리하는 예제입니다.

<?php
    $var = "<p><strong>Demo!</strong>text!<p>";
    var_dump(filter_var($var, FILTER_SANITIZE_STRIPPED));
?>

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

string(10) "Demo!text!"

실행 결과를 보면 문자열에 포함되어 있던 <p>, <strong> 태그가 모두 제거되고 순수한 텍스트 내용("Demo!text!")만 남은 것을 확인할 수 있습니다. 이처럼 FILTER_SANITIZE_STRIPPED는 입력값에서 마크업 요소를 손쉽게 걸러낼 수 있는 유용한 필터입니다.