PHP htmlspecialchars() 함수

예제

예약된 문자 "<" (작은)과 ">" (빠른)을 HTML 엔티티로 변환합니다:

<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>

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

<!DOCTYPE html>
<html>
<body>
This is some <b>bold</b> text.
</body>
</html>

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

This is some <b>bold</b> text.

실행 예제

정의와 사용법

htmlspecialchars() 함수는 예약된 문자를 HTML 엔티티로 변환합니다.

предопределенные символы:

  • & (와)가 &로 변환됩니다
  • " (양쪽 쌍추가 문자)이 ""로 변환됩니다
  • ' (단추추가 문자)이 ''로 변환됩니다
  • < (작은)이 <로 변환됩니다
  • > (빠른)이 >로 변환됩니다

힌트:특정 HTML 엔티티를 문자로 변환하려면 사용하세요 htmlspecialchars_decode() 함수.

문법

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

선택 사항. 구두점, 유효하지 않은 인코딩 처리 및 사용할 문서 유형을 정의합니다.

사용 가능한 구두점 유형:

  • ENT_COMPAT - 기본 설정. 양쪽 쌍추가 문자만 인코딩합니다.
  • ENT_QUOTES - 양쪽 쌍추가 문자와 단추추가 문자를 인코딩합니다.
  • ENT_NOQUOTES - 어떤 구두점도 인코딩하지 않습니다.

유효하지 않은 인코딩:

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

사용할 문서 유형의 추가 flags를 정의합니다.

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

선택 사항. 사용할 문자셋을 정의하는 문자열.

허용된 값:

  • UTF-8 - 기본. ASCII와 상호 운용 가능한 8비트 Unicode
  • 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

일부 предопределенные знаки converting into HTML entity:

<?php
$str = "Bill & 'Steve'";
echo htmlspecialchars($str, ENT_COMPAT); // 더블 큰따옴표만 변환
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // 더블 큰따옴표와 싱글 큰따옴표를 변환
echo "<br>";
echo htmlspecialchars($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 = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // 더블 큰따옴표와 싱글 큰따옴표를 변환
?>

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

<!DOCTYPE html>
<html>
<body>
저는 "PHP"을 사랑합니다.
</body>
</html>

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

저는 "PHP"을 사랑합니다.

실행 예제