mb_decode_numericalentity () ist eine Multibyte -String -Verarbeitungsfunktion (bereitgestellt durch die Mbstring -Erweiterung), und ihre Funktion besteht darin, die numerische Form (z. B. ' ) in den entsprechenden Zeichen in den entsprechenden Zeichen zu dekodieren. Im Gegensatz zur herkömmlichen Funktion HTML_ENTITY_DECODE () unterstützt mb_decode_numericalentity () mehr Zeichensätze und verfügt über eine bessere Handhabung von Multibyte -Zeichen.
Der Prototyp dieser Funktion lautet wie folgt:
<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 : Die zu dekodierende Zeichenfolge.
$ map : Ein Array, das den Bereich definiert, in dem digitale Wesenheiten dekodiert werden müssen.
$ codierung : Gibt die Zeichencodierung an (z. B. UTF-8 oder ISO-8859-1 ).
Angenommen, Sie haben eine Zeichenfolge, die eine HTML -Entitätskodierung enthält, wie folgt:
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello &#20844;&#22909;!"</span></span><span>;
</span></span>
Diese Zeichenfolge enthält die HTML -Entitätskodierung des chinesischen Charakters "Hallo". Jetzt wollen wir es in Originalzeichen dekodieren.
<span><span><span class="hljs-comment">// DekodierungHTMLDigitale Einheit</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">// Ausgabe: Hello Hallo!</span></span><span>
</span></span>
In diesem Beispiel verwenden wir die Funktion mb_decode_numericalentity () und übergeben in einem Zeichenbereich Array [0x80, 0x10ffff, 0, 0xffff] , das alle gültigen Unicode -Zeichenbereiche darstellt. Die dekodierte Zeichenfolge ist "Hallo!" .
Der $ MAP -Parameter definiert den Bereich einer numerischen Entität. Es ist eine Reihe von vier Elementen. Das Format des Arrays lautet wie folgt:
<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>
$ von und $ bis : Die Start- und Endwerte des ersten Bereichs.
$ von 2 und $ to2 : Die Start- und Endwerte des zweiten Bereichs (falls vorhanden).
In der tatsächlichen Verwendung ist es üblich, alle HTML -Entitäten zu dekodieren, sodass ein großer Zeichenbereich verwendet werden kann, um alle Unicode -Zeichen zu überschreiben.
mb_decode_numericalentity () unterstützt mehrere Zeichencodierungen, und verschiedene Codierungsformate können entsprechend den tatsächlichen Anforderungen ausgewählt werden. Wenn Ihre Anwendung hauptsächlich auf mehrsprachige Umgebungen ausgerichtet ist, wird empfohlen , die UTF-8 -Codierung zu verwenden, mit der Charaktersätze in allen Sprachen verarbeitet werden können.
<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">// Hallo こんにちは</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">// Ausgabe: Hallo こんにちは</span></span><span>
</span></span>
Neben digitalen Einheiten (wie { ) können HTML -Entitäten auch als Zeichennamen (wie & lt; ) erscheinen. mb_decode_numericalentity () wird hauptsächlich zum Umgang mit numerischen Entitäten verwendet. Wenn Ihre Zeichenfolge jedoch Zeichennamen -Entitäten enthält, müssen Sie möglicherweise die Funktion html_entity_decode () verwenden, um mit dieser Verwendung zu verwenden.
<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">// Ausgabe: Hello <b>World</b>!</span></span><span>
</span></span>
mb_decode_numericalentity () erfordert Unterstützung für Mbstring -Erweiterungen. Stellen Sie daher sicher, dass Mbstring -Erweiterungen in Ihrer PHP -Umgebung installiert und aktiviert sind, bevor sie verwendet werden.
Diese Funktion wird hauptsächlich zum Dekodieren von digitalen Entitäten verwendet, und andere Methoden sind für die Entschlüsselung von Charakternamen -Entitäten erforderlich.
Die Zeichenkodierung muss mit der von der Zeichenfolge tatsächlich verwendeten Kodierung übereinstimmen, ansonsten kann ein verstümmelter Code auftreten.
mb_decode_numericalEntity () ist ein sehr praktisches Instrument, insbesondere wenn es sich um Saiten mit Sonderzeichen handelt. Durch sie können wir HTML -Digitalentitäten problemlos dekodieren und die Originalzeichen wiederherstellen. Unabhängig davon, ob es sich um mehrsprachige Unterstützung oder die Codierungskonvertierung von HTML -Entität handelt, kann MB_Decode_NumericalEntity () uns helfen, Zeichendaten effektiv zu verwalten.
Indem wir diese Funktion vernünftigerweise verwenden, können wir Daten besser mit Sonderzeichen in PHP -Anwendungen verarbeiten und anzeigen und die Benutzererfahrung und die Systemstabilität verbessern.