MB_DECODE_NUMERICALENTITY () 는 멀티 바이트 문자열 처리 기능 ( MBString Extension에서 제공)이며 그 기능은 해당 문자로 문자열의 HTML 엔티티 숫자 양식 (예 : ' )을 해독하는 것입니다. 기존의 html_entity_decode () 함수와 달리 mb_decode_numericalentity ()는 더 많은 문자 세트를 지원하고 멀티 바이트 문자를 더 잘 처리합니다.
이 기능의 프로토 타입은 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">mb_decode_numericentity</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$map</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$encoding</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
$ string : 문자열을 디코딩 할 문자열입니다.
$ 맵 : 디지털 엔티티를 해독 해야하는 범위를 정의하는 배열.
$ 인코딩 : 문자 인코딩을 지정합니다 (예 : UTF-8 또는 ISO-8859-1 ).
다음과 같이 HTML 엔티티 인코딩이 포함 된 문자열이 있다고 가정합니다.
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello &#20844;&#22909;!"</span></span><span>;
</span></span>
이 문자열에는 중국어 "Hello"의 HTML 엔티티 인코딩이 포함되어 있습니다. 이제 우리는 그것을 원래 문자로 디코딩하고 싶습니다.
<span><span><span class="hljs-comment">// 디코딩HTML디지털 엔티티</span></span><span>
</span><span><span class="hljs-variable">$decoded_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_decode_numericentity</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-number">0x80</span></span><span>, </span><span><span class="hljs-number">0x10FFFF</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0xFFFF</span></span><span>), </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_str</span></span><span>; </span><span><span class="hljs-comment">// 산출: Hello 안녕하세요!</span></span><span>
</span></span>
이 예에서는 MB_DECODE_NUMERICALENTITY () 함수를 사용하고 모든 유효한 유니 코드 문자 범위를 나타내는 문자 범위 배열 [0x10ffff, 0, 0xffff] 에서 전달됩니다. 디코딩 된 문자열은 "안녕하세요!" .
$ 맵 매개 변수는 숫자 엔티티의 범위를 정의합니다. 그것은 네 가지 요소의 배열입니다. 배열의 형식은 다음과 같습니다.
<span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-variable">$from</span></span><span>, </span><span><span class="hljs-variable">$to</span></span><span>, </span><span><span class="hljs-variable">$from2</span></span><span>, </span><span><span class="hljs-variable">$to2</span></span><span>);
</span></span>
$ and $ to : 첫 번째 범위의 시작 및 종료 값.
$ from2 및 $ to2 : 두 번째 범위 (있는 경우)의 시작 및 종료 값.
실제로 사용하면 모든 HTML 엔티티를 해독하는 것이 일반적이므로 모든 유니 코드 문자를 덮어 쓰는 데 큰 문자 범위가 사용될 수 있습니다.
MB_DECODE_NUMERICALENTITY ()는 여러 문자 인코딩을 지원하며 실제 요구에 따라 다른 인코딩 형식을 선택할 수 있습니다. 응용 프로그램이 주로 다중 언어 환경을 목표로하는 경우 모든 언어로 문자 세트를 처리 할 수있는 UTF-8 인코딩을 사용하는 것이 좋습니다.
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"&#20844;&#22909; &#12371;&#12395;&#12385;"</span></span><span>; </span><span><span class="hljs-comment">// 안녕하세요 こんにちは</span></span><span>
</span><span><span class="hljs-variable">$decoded_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_decode_numericentity</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-number">0x80</span></span><span>, </span><span><span class="hljs-number">0x10FFFF</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0xFFFF</span></span><span>), </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_str</span></span><span>; </span><span><span class="hljs-comment">// 산출: 안녕하세요 こんにちは</span></span><span>
</span></span>
디지털 엔티티 (예 : { ) 외에도 HTML 엔티티는 문자 이름 (예 : & lt; )으로 표시 될 수 있습니다. MB_DECODE_NUMERICALENTITY () 는 주로 수치 엔티티를 처리하는 데 사용되지만 문자열에 문자 이름 엔티티가 포함 된 경우 HTML_ENTITY_DECODE () 기능을 사용해야 할 수도 있습니다.
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello &lt;b&gt;World&lt;/b&gt;!"</span></span><span>;
</span><span><span class="hljs-variable">$decoded_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, ENT_QUOTES, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_str</span></span><span>; </span><span><span class="hljs-comment">// 산출: Hello <b>World</b>!</span></span><span>
</span></span>
MB_DECODE_NUMERICALENTITY ()는 MBString 확장에 대한 지원이 필요하므로 사용하기 전에 PHP 환경에 MBString 확장이 설치되어 활성화되어 있는지 확인하십시오.
이 기능은 주로 디지털 엔티티를 해독하는 데 사용되며 다른 방법은 문자 이름 엔티티를 디코딩하는 데 필요합니다.
문자 인코딩은 문자열에서 실제로 사용하는 인코딩과 일치해야하며, 그렇지 않으면 차량 코드가 발생할 수 있습니다.
MB_DECODE_NUMERICALENTITY () 는 특히 특수 문자가있는 문자열을 다룰 때 매우 실용적인 도구입니다. 이를 통해 HTML 디지털 엔티티를 쉽게 디코딩하고 원래 문자를 복원 할 수 있습니다. 다국어 지원이든 HTML 엔티티 인코딩 변환이든 MB_DECODE_NUMERICALENTITY () 는 캐릭터 데이터를 효과적으로 관리하는 데 도움이 될 수 있습니다.
이 기능을 합리적으로 사용하면 PHP 응용 프로그램의 특수 문자로 데이터를 더 잘 처리하고 표시하여 사용자 경험 및 시스템 안정성을 향상시킬 수 있습니다.