Web Programming

htmlspecialchars

알 수 없는 사용자 2008. 5. 15.
728x90

(PHP 3, PHP 4 , PHP 5)

htmlspecialchars --  특수 문자를 HTML 엔터티로 변환합니다.

설명

string htmlspecialchars ( string string [, int quote_style [, string charset]])

어떤 문자들은 HTML에서 특별한 정의를 가지기에, 그 의미를 보존하려면, HTML 엔터티로 표현해야 합니다. 이 함수는 이러한 변환을 수행한 문자열을 반환합니다; 이 번역은 모든 웹 프로그래밍에서 매우 유용합니다. 모든 HTML 문자 엔터티를 번역해야 한다면, 이 함수 대신 htmlentities()를 사용하십시오.

이 함수로 게시판이나 방명록 등의 프로그램에서, HTML을 포함하는 사용자 입력 텍스트를 막을 수 있습니다. 선택적인 두번째 인자 quote_style은 작은 따옴표와 큰 따옴표를 어떻게 처리할지 결정합니다. 기본 모드는 하위 호환 모드 ENT_COMPAT로, 큰 따옴표만 변환합니다. ENT_QUOTES를 지정하면 작은 따옴표와 큰 따옴표 둘 다 변환하고, ENT_NOQUOTES를 지정하면 작은 따옴표와 큰 따옴표 둘 다 변환하지 않습니다.

다음 문자들을 변역합니다:

  • '&'(앰퍼샌드)는 '&'가 됩니다.

  • '"'(큰 따옴표)는 ENT_NOQUOTES를 지정하지 않았을 때 '"'가 됩니다.

  • '''(작은 따옴표)는 ENT_QUOTES를 지정했을 때만 '''가 됩니다.

  • '<'(보다 작음)는 '&lt;'가 됩니다.

  • '>'(보다 큼)는 '&gt;'가 됩니다.

예 1. htmlspecialchars() 예제

<?php
$new
= htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo
$new; // &lt;a href=&#039;test&#039;&gt;TEST&lt;/a&gt;
?>

이 함수는 위 목록 이외에는 아무 것도 번역하지 않는 점에 주의하십시오. 완전한 엔터티 번역을 위해서는, htmlentities()를 참고하십시오. 선택적인 두번째 인자는 PHP 3.0.17과 PHP 4.0.3에서 추가되었습니다.

선택적인 세번째 인자 charset은 변환에 사용하는 문자셋을 정의합니다. 기본 문자셋은 ISO-8859-1입니다. 세번째 인자는 PHP 4.1.0부터 지원합니다.

PHP 4.3.0 이상에서 다음 문자셋을 지원합니다.

표 1. 지원 문자셋

문자셋 다른 이름 설명
ISO-8859-1 ISO8859-1 서부 유럽어, Latin-1.
ISO-8859-15 ISO8859-15 서부 유럽어, Latin-9. 유로 사인, Latin-1(ISO-8859-1)에 빠진 프랑스어와 핀란드어 문자 추가.
UTF-8   ASCII 호환 멀티바이트 8비트 유니코드.
cp866 ibm866, 866 DOS-특정 키릴 문자셋. 이 문자셋은 4.3.2부터 지원합니다.
cp1251 Windows-1251, win-1251, 1251 윈도우즈-특정 키릴 문자셋. 이 문자셋은 4.3.2부터 지원합니다.
cp1252 Windows-1252, 1252 윈도우즈 특정 서부 유럽어 문자셋
KOI8-R koi8-ru, koi8r 러시아어. 이 문자셋은 4.3.2부터 지원합니다.
BIG5 950 중국어 번체, 주로 대만에서 사용.
GB2312 936 중국어 간체, 국가 표준 문자셋.
BIG5-HKSCS   홍콩 확장을 포함한 Big5, 중국어 번체.
Shift_JIS SJIS, 932 일본어.
EUC-JP EUCJP 일본어.

참고: 다른 문자셋에 대해서는 ISO-8859-1을 사용합니다.

728x90

댓글