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