PHP의 html_entity_decode() 함수는 HTML 엔티티(예: &, <)를 해당하는 실제 문자로 변환하는 데 사용됩니다. 예를 들어 <b>처럼 인코딩된 엔티티를 원래의 태그나 특수문자 형태로 되돌릴 수 있습니다.
문법
html_entity_decode(str, flags, character-set)
매개변수
str − 디코딩할 문자열입니다.
flags − 따옴표와 문서 타입을 어떻게 처리할지 지정합니다.
따옴표 처리 스타일
ENT_COMPAT − 기본값. 쌍따옴표만 변환합니다.
ENT_QUOTES − 쌍따옴표와 홑따옴표를 모두 변환합니다.
ENT_NOQUOTES − 어떤 따옴표도 변환하지 않습니다.
문서 타입(DOCTYPE) 관련 플래그
ENT_HTML401 − 기본값. 코드를 HTML 4.01로 처리합니다.
ENT_HTML5 − 코드를 HTML 5로 처리합니다.
ENT_XML1 − 코드를 XML 1로 처리합니다.
ENT_XHTML − 코드를 XHTML로 처리합니다.
character-set − 사용할 문자셋을 지정하는 문자열
주요 사용 가능한 값은 다음과 같습니다.
UTF-8 − 기본값. ASCII 호환 멀티바이트 8비트 유니코드
ISO-8859-1 − 서유럽어권 문자셋
ISO-8859-15 − 서유럽어권 (ISO-8859-1에 유로 기호와 프랑스어·핀란드어 누락 문자 추가)
cp866 − DOS 전용 키릴 문자셋
cp1251 − Windows 전용 키릴 문자셋
cp1252 − Windows용 서유럽어권 문자셋
KOI8-R − 러시아어 문자셋
BIG5 − 번체 중국어 (주로 대만에서 사용)
GB2312 − 간체 중국어 국가 표준 문자셋
BIG5-HKSCS − 홍콩 확장이 포함된 Big5
Shift_JIS − 일본어 문자셋
EUC-JP − 일본어 문자셋
MacRoman − Mac OS에서 사용되던 문자셋
반환값
html_entity_decode() 함수는 엔티티가 변환된 문자열을 반환합니다.
예제
다음은 htmlentities()로 인코딩한 후 다시 html_entity_decode()로 복원하는 예제입니다.
<?php $orig = "We've all the <b>books</b>!"; $one = htmlentities($orig); $two = html_entity_decode($one); echo $one; echo $two; ?>
출력 결과
We've all the <b>books</b>!We've all the <strong>books</strong>!
위 결과에서 첫 번째 출력은 HTML 태그가 엔티티로 인코딩된 상태이며, 두 번째 출력은 디코딩되어 원래의 굵은 글씨 태그가 적용된 것을 확인할 수 있습니다.