PHP htmlentities() 함수

예제

문자를 HTML 이식 문자로 변환:

<?php
$str = "<? W3S?h????>";
echo htmlentities($str);
?>

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

<!DOCTYPE html>
<html>
<body>
<© W3Sçh°°¦§>
</body>
</html>

위 코드의 브라우저 출력은 다음과 같습니다:

<? W3S?h????>

정의와 사용법

htmlentities() 함수를 사용하여 문자를 HTML 엔티티로 변환.

ヒント:HTML 엔티티를 문자로 변환하려면, html_entity_decode() 함수를 사용하여, HTML 엔티티를 문자로 변환. 함수.

ヒント:사용하십시오: get_html_translation_table() get_html_translation_table() 함수를 사용하여, htmlentities()가 사용하는 번역 테이블을 반환하는 함수.

문법

htmlentities(string,flags,character-set,double_encode)
매개변수 설명
string 필수. 변환할 문자열을 정의.
flags

선택 가능. 괄호, 무효의 인코딩 처리 및 사용할 문서 유형을 정의.

사용 가능한 괄호 유형:

  • ENT_COMPAT - 기본. 오직 더블 괄호만 인코딩.
  • ENT_QUOTES - 더블 괄호와 싱글 괄호를 인코딩.
  • ENT_NOQUOTES - 어떤 괄호도 인코딩하지 않음.

무효의 인코딩:

  • ENT_IGNORE - 무효의 인코딩을 무시하고, 함수가 빈 문자열을 반환하지 않도록. 가능한 한 피해야 하며, 이는 보안에 영향을 미칠 수 있습니다.
  • ENT_SUBSTITUTE - 무효의 인코딩을 지정된 Unicode 대체 문자 U+FFFD(UTF-8) 또는 &#FFFD;를 포함한 문자로 대체하고, 빈 문자열을 반환하지 않도록.
  • ENT_DISALLOWED - 지정된 문서 유형의 무효 코드 포인트를 Unicode 대체 문자 U+FFFD(UTF-8) 또는 &#FFFD;로 대체.

사용할 문서 유형의 추가 플래그를 정의:

  • 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 운영 체제에서 사용하는 문자 집합

주석:PHP 5.4 이전 버전에서 인식할 수 없는 문자 집합은 ISO-8859-1로 대체됩니다. PHP 5.4부터는 인식할 수 없는 문자 집합은 UTF-8으로 대체됩니다.

double_encode

선택 사항. 부울 값, 기존의 HTML 이식 문자를 인코딩할지 여부를 정의합니다.

  • TRUE - 기본 설정. 각 이식 문자에 대해 변환을 수행합니다.
  • FALSE - 기존의 HTML 이식 문자에 대한 인코딩을 하지 않습니다.

기술적인 세부 사항

반환 값:

변환된 문자열을 반환합니다.

만약 string 사용할 수 없는 인코딩이 포함되어 있으면, ENT_IGNORE 또는 ENT_SUBSTITUTE 플래그가 설정되지 않았다면 비어 있는 문자열을 반환합니다.

PHP 버전: 4+
업데이트 기록:

PHP 5에서character-set 파라미터의 기본 값이 UTF-8으로 변경되었습니다.

PHP 5.4에서 새로 추가되었습니다: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1, ENT_XHTML.

PHP 5.3에서 ENT_IGNORE를 새로 추가되었습니다.

PHP 5.2.3에서 새로 추가되었습니다. double_encode 파라미터.

PHP 4.1에서 새로 추가되었습니다. character-set 파라미터.

더 많은 예제

예제 1

문자를 HTML 이식 문자로 변환:

<?php
$str = "Bill & 'Steve'";
echo htmlentities($str, ENT_COMPAT); // 두quote만 변환
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // 변환 두quote와 한quote
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // No quotes are converted
?>

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

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

위 코드의 브라우저 출력은 다음과 같습니다:

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

실행 예제

예제 2

Western European character-set을 사용하여 일부 문자를 HTML 엔티티로 변환합니다:

<?php
$str = "My name is Øyvind Øsane. I'm Norwegian.";
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1"); 
// Only converts double quotes (not single quotes), and uses the character-set Western European
?>

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

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

위 코드의 브라우저 출력은 다음과 같습니다:

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

실행 예제