Strings html_entity_decode

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

html_entity_decode — HTML 엔터티를 해당 문자로 변환


설명

html_entity_decode(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, ?string $encoding = null): string

html_entity_decode()string의 HTML 엔티티를 해당 문자로 변환한다는 점에서 htmlentities()의 반대입니다.

더 정확하게는 이 함수는 a) 선택한 문서 유형에 대해 반드시 유효한 모든 엔티티(모든 숫자 엔티티 포함)를 디코딩합니다. 즉, XML의 경우 이 함수는 일부 DTD에 정의될 수 있는 명명된 엔티티를 디코딩하지 않습니다. b) 선택된 인코딩과 연관된 코드화된 문자 세트에 있는 문자 또는 선택된 문서 유형에서 허용되는 문자. 다른 모든 엔터티는 그대로 둡니다.


매개변수

string
입력 문자열입니다.
flags
따옴표를 처리하는 방법과 사용할 문서 유형을 지정하는 다음 플래그 중 하나 이상의 비트 마스크입니다. 기본값은 ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

사용 가능한 flags 상수

상수 이름 설명
ENT_COMPAT 큰따옴표를 변환하고 작은따옴표를 그대로 둡니다.
ENT_QUOTES 큰따옴표와 작은따옴표를 모두 변환합니다.
ENT_NOQUOTES 큰따옴표와 작은따옴표 모두 변환되지 않은 상태로 둡니다.
ENT_SUBSTITUTE 빈 문자열을 반환하는 대신 잘못된 코드 단위 시퀀스를 유니코드 대체 문자 U+FFFD(UTF-8) 또는 �(그렇지 않은 경우)으로 교체합니다.
ENT_HTML401 코드를 HTML 4.01로 처리합니다.
ENT_XML1 Handle code as XML 1.
ENT_XHTML Handle code as XHTML.
ENT_HTML5 Handle code as HTML 5.
encoding
문자를 변환할 때 사용되는 인코딩을 정의하는 선택적 인수입니다.

생략하면 encoding은 기본적으로 default_charset 구성 옵션의 값으로 설정됩니다.

이 인수는 기술적으로 선택 사항이지만 지정된 입력에 대해 default_charset 구성 옵션이 잘못 설정될 수 있는 경우 코드에 올바른 값을 지정하는 것이 좋습니다.

다음 문자 집합이 지원됩니다.

지원되는 문자 집합

Charset Aliases 설명
ISO-8859-1 ISO8859-1 서유럽어, 라틴어-1.
ISO-8859-5 ISO8859-5 거의 사용되지 않는 키릴 문자 집합(라틴어/키릴 문자).
ISO-8859-15 ISO8859-15 서유럽어, 라틴-9. Latin-1(ISO-8859-1)에서 누락된 유로 기호, 프랑스어 및 핀란드어 문자를 추가합니다.
UTF-8   ASCII 호환 멀티바이트 8비트 유니코드.
cp866 ibm866, 866 DOS 전용 키릴 문자 집합입니다.
cp1251 Windows-1251, win-1251, 1251 Windows 전용 키릴 문자 집합입니다.
cp1252 Windows-1252, 1252 서유럽용 Windows 전용 문자 집합입니다.
KOI8-R koi8-ru, koi8r Russian.
BIG5 950 대만에서 주로 사용되는 중국어 번체.
GB2312 936 중국어 간체, 국가 표준 문자 집합입니다.
BIG5-HKSCS   홍콩 확장이 있는 Big5, 중국어 번체.
Shift_JIS SJIS, SJIS-win, cp932, 932 Japanese
EUC-JP EUCJP, eucJP-win Japanese
MacRoman   Mac OS에서 사용하는 문자 집합입니다.
''   빈 문자열은 스크립트 인코딩(Zend 멀티바이트), default_charset 및 현재 로케일(nl_langinfo()setlocale() 참조)에서 이 순서대로 감지를 활성화합니다. 권장하지 않습니다.

참고: 다른 문자 집합은 인식되지 않습니다. 대신 기본 인코딩이 사용되며 경고가 표시됩니다.


반환 값

디코딩된 문자열을 반환합니다.


변경 로그

버전 설명
8.0.0 flagsENT_COMPAT에서 ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401로 변경됨.
8.0.0 encoding은 이제 nullable입니다.

Examples

예제 #1 HTML 엔터티 디코딩

                  
<?php
$orig = "I'll \"walk\" the dog now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll "walk" the <b>dog</b> now

echo $b; // I'll "walk" the dog now
?>
                  
                

메모

메모: 왜 trim(html_entity_decode(' ')); ' ' 엔티티가 ASCII 코드 32(trim()로 제거됨)가 아니라 기본 ISO 8859-1 인코딩의 ASCII 코드 160(0xa0)이기 때문입니다.


기타