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

PHP get_html_translation_table() 함수 완벽 가이드 – HTML 변환 테이블 이해하기


PHP의 get_html_translation_table() 함수는 htmlspecialchars()htmlentities() 함수 내부에서 사용되는 HTML 변환 테이블(translation table)을 배열 형태로 반환합니다. 이 함수를 활용하면 어떤 문자가 어떤 HTML 엔티티로 변환되는지 미리 확인할 수 있으며, 사용자 정의 문자 치환 로직을 구현할 때도 유용하게 쓰입니다.

문법

get_html_translation_table(table, flags)

매개변수

  • table − 반환할 변환 테이블의 종류를 지정합니다. 사용 가능한 값은 다음과 같습니다.

    • HTML_SPECIALCHARS(기본값) − &, 큰따옴표, <, >처럼 HTML 페이지에 올바르게 표시하기 위해 인코딩이 필요한 일부 특수 문자만 변환합니다.

    • HTML_ENTITIES − HTML 엔티티로 표현할 수 있는 모든 문자를 변환합니다.

  • flags − 따옴표 처리 방식 등 함수의 동작을 제어하는 플래그입니다. 예를 들어 ENT_QUOTES를 지정하면 작은따옴표와 큰따옴표를 모두 변환합니다.

반환값

get_html_translation_table() 함수는 원본 문자를 키(key)로, 해당하는 HTML 엔티티를 값(value)으로 갖는 배열을 반환합니다.

예제

<?php
print_r(get_html_translation_table(HTML_SPECIALCHARS));
?>

출력

Array
(
    ["] => "
    [&] => &
    [<] => <
    [>] => >
)

실행 결과를 보면 큰따옴표는 "로, 앰퍼샌드(&)는 &로, 여는 꺾쇠 괄호(<)는 <로, 닫는 꺾쇠 괄호(>)는 >로 각각 대응되는 것을 확인할 수 있습니다.

응용 예제

반환된 테이블은 strtr() 함수와 함께 사용하면 문자열 속 특수 문자를 직접 변환할 수 있습니다.

<?php
$table = get_html_translation_table(HTML_SPECIALCHARS);

$str = "Tom & Jerry";
echo strtr($str, $table);
?>

위 코드를 실행하면 &가 &amp;로 변환되어, 브라우저 화면에는 "Tom & Jerry"가 의도한 대로 표시됩니다. 이처럼 변환 테이블을 직접 가져와 활용하면 htmlspecialchars()의 기본 동작을 확장하거나 상황에 맞게 커스터마이징할 수 있습니다.