정의 및 사용 방법
- PHP 버전
- 5+
htmlspecialchars_decode()
함수는
엔디티(entities)로 인코딩된 다섯 개의 HTML 예약 문자(<
, >
, &
, "
, '
)를 디코딩하여 원래 문자열로 복원합니다.
이 함수는 HTML의 예약된 특수문자를 엔티티로 인코딩하는 htmlspecialchars()
함수의 반대 개념입니다.
디코딩되는 다섯 개의 HTML 예약 문자
디코딩되는 인코딩된 다섯 개의 HTML 예약 문자는 다음의 표를 참고하세요.
인코딩된 엔티티 | 디코딩되는 원래 문자 |
---|---|
< |
< |
> |
> |
& |
& |
" |
" |
' 또는 ' |
' |
기본 예제
$encoded_1 = '엔디티(entities)로 인코딩된 다섯 개의 HTML 예약 문자(<, >, &, ", ')를 디코딩합니다.';
echo htmlspecialchars_decode($encoded_1);
// 출력: 엔디티(entities)로 인코딩된 다섯 개의 HTML 예약 문자(<, >, &, ", ')를 디코딩합니다.
$encoded_2 = '그 외 엔티티로 인코딩된 문자(예: ©의 엔티티인 ©)는 디코딩하지 않습니다.';
echo htmlspecialchars_decode($encoded_2);
// 출력: 그 외 엔티티로 인코딩된 문자(예: ©의 엔티티인 ©)는 디코딩하지 않습니다.
구문
htmlspecialchars_decode(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401): string
매개변수
$string |
필수. 디코딩하려는 원본 문자열입니다. |
---|---|
$flags |
옵션. 디코딩 시 동작 방식을 지정하는 상수 옵션입니다. 여러 옵션은 | (비트 OR) 연산자로 결합 가능합니다. 기본값: ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401
|
반환 값
디코딩된 문자열을 반환합니다.
변경 이력
PHP 8.1.0부터 | $flags 가 ENT_COMPAT 에서 ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 로 변경되었습니다. |
---|
예제
$str = '<p>는 "문단" 요소입니다.';
echo htmlspecialchars_decode($str);
// 출력: <p>는 "문단" 요소입니다.
// ENT_NOQUOTES 옵션이 설정되어 있으면 따옴표는 디코딩하지 않음
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
// 출력: <p>는 "문단" 요소입니다.
같이 보기
- PHP htmlentities() 함수 – HTML 엔티티로 변환 가능한 모든 문자를 인코딩
- PHP strip_tags() 함수 – 문자열에서 HTML 태그 제거
- PHP str_replace() 함수 – 문자열을 다른 문자열로 교체
- PHP preg_replace() 함수 – 정규식으로 문자열을 교체
- PHP sprintf() 함수 – 특정 형식으로 문자열 만들기
- HTML 태그 소개
- HTML 특수 문자 코드표 – 특수기호, 엔티티, 문자 인코딩 코드 정리
- 웹 페이지에서 이모지(이모티콘) 사용하기
- 자바스크립트 replace() 함수 – 문자열을 다른 문자열로 교체
- 자바스크립트 replaceAll() 함수 – 문자열을 다른 문자열로 모두 교체