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

PHP FILTER_SANITIZE_SPECIAL_CHARS 상수 – 특수 문자 HTML 이스케이프 처리 방법

FILTER_SANITIZE_SPECIAL_CHARS 상수는 특수 문자를 HTML 엔티티 형태로 이스케이프(escape) 처리하는 PHP 필터입니다. 사용자 입력에 포함된 <, >, &, 큰따옴표(") 같은 문자를 각각 &lt;, &gt;, &amp;, &quot;로 변환해 주기 때문에 XSS 공격을 방지하고 데이터를 안전하게 출력할 때 매우 유용합니다.

사용 가능한 플래그(Flags)

  • FILTER_FLAG_STRIP_LOW — ASCII 값이 32 미만인 제어 문자를 제거합니다.

  • FILTER_FLAG_STRIP_HIGH — ASCII 값이 127 초과인 문자를 제거합니다.

  • FILTER_FLAG_ENCODE_HIGH — ASCII 값이 127 초과인 문자를 인코딩합니다.

반환값(Return)

이 상수는 filter_var() 함수와 함께 사용되며, 특수 문자가 HTML 엔티티로 변환된 새로운 문자열을 반환합니다. 원본 변수의 값은 그대로 유지됩니다.

예제(Example)

<?php
    $var = "Favorite Sports is Football & Cricket?";
    var_dump(filter_var($var, FILTER_SANITIZE_SPECIAL_CHARS));
?>

실행 결과(Output)

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

string(43) "Favorite Sports is Football &amp; Cricket?"

원본 문자열의 앰퍼샌드(&)가 HTML 엔티티인 &amp;(5글자)로 변환되었기 때문에 결과 문자열의 길이가 43자가 된 것을 확인할 수 있습니다. 이처럼 FILTER_SANITIZE_SPECIAL_CHARS는 특수 문자를 자동으로 인코딩하여 브라우저에서 안전하게 표시되도록 도와줍니다.