PHP html_entity_decode() 함수

예제

HTML 엔티티를 문자로 변환합니다:

<?php
$str = "<© W3Sçh°°¦§>";
echo html_entity_decode($str);
?>

위 코드의 HTML 출력은 다음과 같습니다. (원본 코드 확인):

<!DOCTYPE html>
<html>
<body>
<? W3S?h????>
</body>
</html>

위 코드의 브라우저 출력:

<? W3S?h????>

정의와 사용법

html_entity_decode() 함수는 HTML 엔티티를 문자로 변환합니다.

html_entity_decode() 함수는 htmlentities() 함수의 반대 함수.

문법

html_entity_decode(string,flags,character-set)
파라미터 설명
string 필수. 디코딩할 문자열을 지정
flags

선택적. 괄호 처리 방식 및 사용할 문서 타입을 지정

사용 가능한 괄호 유형:

  • ENT_COMPAT - 기본값. 양쪽 쌍따옴표만 디코딩
  • ENT_QUOTES - 양쪽 쌍따옴표와 단따옴표를 디코딩
  • ENT_NOQUOTES - 어떤 괄호도 디코딩하지 않음

사용할 문서 타입의 추가 flags를 지정

  • ENT_HTML401 - 기본값. HTML 4.01로 처리됨
  • ENT_HTML5 - HTML 5로 처리됨
  • ENT_XML1 - XML 1로 처리됨
  • ENT_XHTML - XHTML로 처리됨
character-set

선택적. 문자열 값, 사용할 문자셋을 지정

허용된 값:

  • UTF-8 - 기본값。ASCII와 호환되는 다중 바이트 유니코드
  • 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 운영체제에서 사용하는 문자셋

注释:在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代。

技术细节

返回值: 返回被转换的字符串
PHP 版本: 4.3.0+

更新日志:

版本 说明
PHP 5 character-set 参数的默认值改为 UTF-8。
PHP 5.4

新增了用于规定翻译表适用的文档类型的附加 flags:

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML
PHP 5.3.4 다중 바이트编码 지원을 추가했습니다.

더 많은 예제

예제 1

HTML 엔티티를 문자로 변환합니다:

<?php
$str = "Bill & 'Steve'";
echo html_entity_decode($str, ENT_COMPAT); // 더블 쿼트만 변환
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // 더블 쿼وت와 싱글 쿼트 변환
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // 아무것도 변환하지 않음
?>

위 코드의 HTML 출력 (원본 코드 보기):

<!DOCTYPE html>
<html>
<body>
Bill & 'Steve'<br>
Bill & 'Steve'<br>
Bill & 'Steve'
</body>
</html>

위 코드의 브라우저 출력:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

예제 2

서유럽 문자 집합을 사용하여 HTML 엔티티를 문자로 변환합니다:

<?php
$str = "My name is Øyvind Åsane. I'm Norwegian.";
echo html_entity_decode($str, ENT_QUOTES, "ISO-8859-1");
?>

위 코드의 HTML 출력 (원본 코드 보기):

<!DOCTYPE html>
<html>
<body>
My name is ?yvind ?sane. I'm Norwegian.
</body>
</html>

위 코드의 브라우저 출력:

My name is ?yvind ?sane. I'm Norwegian.