Strings htmlentities

(PHP 4, PHP 5, PHP 7, PHP 8)

htmlentities — 적용 가능한 모든 문자를 HTML 엔터티로 변환


설명

htmlentities(
    string $string,
    int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
    ?string $encoding = null,
    bool $double_encode = true
): string
                

이 함수는 htmlentities()를 제외하고 모든 면에서 htmlspecialchars()와 동일합니다. 단, HTML 문자 엔터티에 해당하는 모든 문자는 이러한 엔터티로 변환됩니다. get_html_translation_table() 함수는 제공된 flags 상수에 따라 사용된 변환 테이블을 반환하는 데 사용할 수 있습니다.

대신(역방향) 디코딩하려면 html_entity_decode()를 사용할 수 있습니다.


매개변수

string
입력 문자열입니다.
flags
따옴표, 잘못된 코드 단위 시퀀스 및 사용된 문서 유형을 처리하는 방법을 지정하는 다음 플래그 중 하나 이상의 비트 마스크입니다. 기본값은 ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

사용 가능한 flags 상수

상수 이름 설명
ENT_COMPAT 큰따옴표를 변환하고 작은따옴표를 그대로 둡니다.
ENT_QUOTES 큰따옴표와 작은따옴표를 모두 변환합니다.
ENT_NOQUOTES 큰따옴표와 작은따옴표 모두 변환되지 않은 상태로 둡니다.
ENT_IGNORE 빈 문자열을 반환하는 대신 잘못된 코드 단위 시퀀스를 조용히 버립니다. 이 플래그는 » may have security implications을 줄 수 있으므로 사용하지 않는 것이 좋습니다.
ENT_SUBSTITUTE 유효하지 않은 코드 단위 시퀀스를 유니코드 대체 문자 U+FFFD(UTF-8) 또는 &#FFFD; (그렇지 않으면) 빈 문자열을 반환하는 대신.
ENT_DISALLOWED 주어진 문서 유형에 대한 유효하지 않은 코드 포인트를 유니코드 대체 문자 U+FFFD(UTF-8) 또는 &#FFFD; (그렇지 않으면) 그대로 두는 대신. 이는 예를 들어 외부 콘텐츠가 포함된 XML 문서의 형식을 잘 유지하는 데 유용할 수 있습니다.
ENT_HTML401 Handle code as 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 구성 옵션이 잘못 설정될 수 있는 경우 코드에 올바른 값을 지정하는 것이 좋습니다.

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

Supported charsets

Charset Aliases Description
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() 참조)에서 이 순서대로 감지를 활성화합니다. 권장하지 않습니다.

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

double_encode
double_encode가 꺼져 있으면 PHP는 기존 html 엔티티를 인코딩하지 않습니다. 기본값은 모든 것을 변환하는 것입니다.

반환 값

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

입력 string에 지정된 encoding 내에서 잘못된 코드 단위 시퀀스가 ​​포함되어 있으면 ENT_IGNORE 또는 ENT_SUBSTITUTE 플래그가 설정되지 않는 한 빈 문자열이 반환됩니다.


변경 로그

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

Examples

예제 #1 htmlentities() 예제

                  
<?php
$str = "A 'quote' is bold";

// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str);

// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
?>
                  
                

예제 #2 ENT_IGNORE 사용

                  
<?php
$str = "\x8F!!!";

// Outputs an empty string
echo htmlentities($str, ENT_QUOTES, "UTF-8");

// Outputs "!!!"
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
?>
                  
                

기타