HTML 엔티티는 일부 문자의 인코딩 된 형태이며, 일반적으로 시작 하고 끝납니다 . 일반적인 HTML 엔티티는 다음과 같습니다.
& lt; 해당 <
& gt; 준수 >
& amp; 해당 및
" 준수 "
& nbsp; 준수 한 공간
이러한 엔티티는 종종 특정 문자가 HTML에서 구문 오류를 일으키거나 페이지 렌더링에 영향을 미치는 것을 방지하는 데 사용됩니다. HTTP 요청을 통해 양식 데이터를 제출하면 이러한 문자는 엔티티로 변환되어 올바르게 전송되도록 할 수 있습니다.
사용자가 양식 데이터를 서버에 제출하면 특수 문자가 종종 HTML 엔티티로 탈출됩니다. 이 탈출은 보안에 도움이되지만 (악의적 인 스크립트 주입을 피하기) 때로는 원래 콘텐츠가 올바르게 표시되도록 이러한 엔티티를 복원해야합니다. 예를 들어, 사용자가 <and> 를 포함하는 html 태그를 입력하고 태그가 & lt; 그리고 & gt;, 우리는 페이지에 올바른 표시를 위해 실제 문자로 복원 할 수 있습니다.
html_entity_decode () 는 PHP가 제공하는 내장 함수이며 주로 HTML 엔티티를 해당 문자로 변환하는 데 사용됩니다. 기본 사용량은 다음과 같습니다.
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hello &lt;world&gt;!"</span></span><span>;
</span><span><span class="hljs-variable">$decoded_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_string</span></span><span>;
</span></span>
산출:
<span><span><span class="language-xml">Hello <span class="hljs-tag"><<span class="hljs-name">world</span></span></span></span><span>>!
</span></span>
위에서 볼 수 있듯이 html_entity_decode () 복원 & lt; & & gt; <and> .
html_entity_decode ($ string, $ flags, $ encoding) :
$ String : 처리 할 문자열은 변환 해야하는 HTML 엔티티를 포함합니다.
$ 플래그 : 변환 프로세스를 제어하기위한 선택적 매개 변수. 일반적으로 사용되는 로고는 다음과 같습니다.
ENT_COMPAT (기본값) : 단일 따옴표가 아닌 이중 따옴표 만 변환합니다.
ENT_QUOTES : 이중 및 단일 따옴표를 변환합니다.
ENT_NOQUOTES : 따옴표가 변환되지 않습니다.
$ 인코딩 : 옵션 매개 변수, 문자 인코딩을 지정하고 기본값을 UTF-8 로 지정합니다.
단일 및 이중 인용문을 포함하여 모든 HTML 엔티티를 문자열로 복원하려면 ENT_QUOTES 플래그를 사용할 수 있습니다.
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"It&apos;s a &quot;great&quot; day!"</span></span><span>;
</span><span><span class="hljs-variable">$decoded_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, ENT_QUOTES);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_string</span></span><span>;
</span></span>
산출:
<span><span>It</span><span><span class="hljs-symbol">'s</span></span><span> a </span><span><span class="hljs-string">"great"</span></span><span> day!
</span></span>
사용자가 HTML 엔티티를 포함하는 텍스트를 입력하는 양식이 있다고 가정합니다. 서버에 제출 한 후 서버에서받은 텍스트는 탈출 한 HTML 엔티티 일 수 있습니다. 양식 결과를 제시 할 때는 이러한 엔티티를 복원해야합니다. 이 함수는 html_entity_decode ()를 사용하여 쉽게 달성 할 수 있습니다.
<span><span><span class="hljs-comment">// 수신 된 양식 데이터가 수행되었다고 가정하십시오HTML엔티티 탈출</span></span><span>
</span><span><span class="hljs-variable">$submitted_data</span></span><span> = </span><span><span class="hljs-string">"Hello &lt;strong&gt;world&lt;/strong&gt;!"</span></span><span>;
</span><span><span class="hljs-variable">$decoded_data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-variable">$submitted_data</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_data</span></span><span>;
</span></span>
산출:
<span><span>Hello <</span><span><span class="hljs-selector-tag">strong</span></span><span>>world</</span><span><span class="hljs-selector-tag">strong</span></span><span>>!
</span></span>
html_entity_decode () 를 통해 원래 탈출 된 HTML 엔티티를 복원 할 수 있으며 컨텐츠를 올바르게 표시 할 수 있습니다.
HTML 엔티티의 탈출 및 복원은 특히 사용자 입력을 처리 할 때 양식을 개발할 때 매우 일반적인 요구 사항입니다. html_entity_decode () 함수는 HTML 엔티티를 해당 문자로 다시 변환하는 간단하고 효율적인 방법을 제공하여 개발자가 양식 처리 및 데이터 프리젠 테이션에서 컨텐츠 렌더링을 더 잘 제어 할 수 있도록 도와줍니다.
html_entity_decode ()를 올바르게 사용하면 복원 후 사용자가 제출 한 텍스트를 올바르게 표시 할 수 있으며 HTML 엔티티로 인한 디스플레이 오류 또는 기타 문제를 피할 수 있습니다.
관련 태그:
HTML