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 | flags 가 ENT_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)이기 때문입니다.
기타
- htmlentities() - 가능한 모든 문자를 HTML 엔터티로 변환
- htmlspecialchars() - 특수 문자를 HTML 엔터티로 변환
- get_html_translation_table() - htmlspecialchars 및 htmlentities에서 사용하는 번역 테이블을 반환합니다.
- urldecode() - URL 인코딩된 문자열 디코딩