Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Multibyte-String

PHP-Multibyte-String

伊谢尔伦
伊谢尔伦Original
2016-11-21 17:58:371271Durchsuche

Einführung

Während viele Sprachen über eine Eins-zu-eins-Zuordnung jedes erforderlichen Zeichens zu einem 8-Bit-Wert verfügen, gibt es auch mehrere Sprachen, die für die schriftliche Kommunikation so viele Zeichen erfordern Sie Der Codierungsbereich kann nicht in nur einem Byte enthalten sein (ein Byte besteht aus 8 Bits. Jedes Bit kann nur zwei verschiedene Werte enthalten: 1 oder 0. Daher kann ein Byte nur 256 verschiedene Werte darstellen. Wert, also 2 zur achten Potenz). Multibyte-Zeichenkodierungsschemata wurden entwickelt, um mehr als 256 Zeichen in herkömmlichen bytebasierten Kodierungssystemen auszudrücken.

Wenn Sie mit mehreren Bytes codierte Zeichenfolgen bearbeiten (zuschneiden, teilen, spleißen usw.), drücken aufgrund dieses Codierungsschemas zwei oder mehr aufeinanderfolgende Bytes möglicherweise nur ein Zeichen aus, sodass Sie spezielle Funktionen verwenden müssen. Wenn Sie andernfalls eine Funktion auf diese Zeichenfolge anwenden, die keine Multibyte-Zeichenfolgen erkennen kann, ist sie möglicherweise nicht in der Lage, die Startposition von Multibyte-Zeichen zu erkennen, und es entsteht eine verstümmelte Zeichenfolge, die im Grunde ihre ursprüngliche Bedeutung verliert.

mbstring bietet Funktionen für Multibyte-Strings, die Ihnen bei der Handhabung der Multibyte-Codierung in PHP helfen können. Darüber hinaus kann mbstring zwischen möglichen Zeichenkodierungen konvertieren. Der Einfachheit halber ist mbstring für die Verarbeitung von Unicode-basierten Kodierungen wie UTF-8, UCS-2 und vielen Einzelbyte-Kodierungen konzipiert.

mbstring ist keine Standarderweiterung. Dies bedeutet, dass es standardmäßig nicht aktiviert ist. Sie müssen dieses Modul explizit in der Konfigurationsoption aktivieren.

HTTP-Eingabe und -Ausgabe

Die Zeichenkodierungskonvertierung für HTTP-Eingabe/Ausgabe funktioniert auch für Binärdaten. Wenn Binärdaten für die HTTP-Eingabe/-Ausgabe verwendet werden, sollte der Benutzer die Konvertierung der Zeichenkodierung steuern.

Wenn seit PHP 4.3.3 das enctype-Attribut des HTML-Formulars auf multipart/form-data und mbstring.encoding_translation in php.ini auf On gesetzt ist, werden die POST-Variablen und der Name des Die hochgeladene Datei wird ebenfalls in die interne Zeichenkodierung konvertiert. Die Transformation wird jedoch nicht auf die Schlüssel der Abfrage angewendet.

HTTP-Eingabe Es gibt keine Möglichkeit, die Konvertierung von HTTP-Eingabezeichen in PHP-Skripten zu steuern. Um die HTTP-Eingabezeichenkonvertierung zu deaktivieren, muss dies in php.ini festgelegt werden.

Beispiel #1 Deaktivieren der HTTP-Eingabekonvertierung in php.ini

;; 禁用 HTTP 输入转换
mbstring.http_input = pass
;;禁用 HTTP 输入转换 (PHP 4.3.0 或更高版本)
mbstring.encoding_translation = Off

Wenn PHP als Apache-Modul ausgeführt wird. Diese Einstellungen können auch über jede virtuelle Host-Direktive (Virtual Host) in httpd.conf oder .htaccess in jedem Verzeichnis überschrieben werden.
Es gibt mehrere Möglichkeiten, die Konvertierung der HTTP-Ausgabezeichenkodierung zu verwenden. Eine besteht darin, php.ini zu verwenden, die andere darin, ob_start() mit mb_output_handler() als Rückruffunktion von ob_start zu verwenden.

Beispiel #2 php.ini-Einstellungsbeispiel

;; 为所有 PHP 页面启用输出字符编码的转换
;; 启用输出缓冲
output_buffering    = On
;; 设置 mb_output_handler 来进行输出的转换
output_handler      = mb_output_handler

Beispiel #3 Skriptbeispiel

<?php
    // 仅为此页面启用输出字符编码的转换
    // 设置 HTTP 输出字符编码为 SJIS
    mb_http_output(&#39;SJIS&#39;);
    // 开始缓冲并指定 "mb_output_handler" 为回调函数
    ob_start(&#39;mb_output_handler&#39;);
?>

Multibyte-String-Funktion

mb_check_encoding — Überprüfen Sie, ob die Zeichenfolge in der angegebenen Kodierung gültig ist

mb_convert_case – Konvertieren Sie die Zeichenfolge in Groß- und Kleinbuchstaben

mb_convert_encoding – Konvertieren Sie die Zeichenkodierung

mb_convert_kana – Konvertieren Sie „kana“ voneinander („zen-kaku“, „han-kaku“ und mehr)

mb_convert_variables – Konvertieren Sie die Zeichenkodierung einer oder mehrerer Variablen

mb_decode_mimeheader – Dekodieren Sie Zeichen in MIME-Header-Feldern String

mb_decode_numericentity – dekodiert die numerische HTML-Zeichenfolge in Zeichen

mb_detect_encoding – erkennt die Zeichenkodierung

mb_detect_order – legt/erhält die Erkennungsreihenfolge der Zeichenkodierung

mb_encode_mimeheader – Zeichen in numerische HTML-String-Referenz für Multibyte-String kodieren

mb_ereg_replace_callback – Führt eine Suche nach regulären Ausdrücken durch und ersetzt sie mit Multibyte-Unterstützung mithilfe eines Rückrufs

mb_ereg_replace – Ersetzt reguläre Ausdrücke durch Multibyte-Unterstützung

mb_ereg_search_getpos – Gibt den Startpunkt für die nächste Übereinstimmung mit einem regulären Ausdruck zurück.

mb_ereg_search_getregs – Ruft das Ergebnis der letzten Übereinstimmung mit einem regulären Multibyte-Ausdruck ab.

mb_ereg_search_init – Richtet Zeichenfolge und regulären Ausdruck für eine Übereinstimmung mit einem regulären Multibyte-Ausdruck ein

mb_ereg_search_pos – Gibt Position und Länge eines übereinstimmenden Teils des regulären Multibyte-Ausdrucks für eine vordefinierte Multibyte-Zeichenfolge zurück

mb_ereg_search_regs – Gibt den übereinstimmenden Teil eines regulären Multibyte-Ausdrucks zurück

mb_ereg_search_setpos – Setzt den Startpunkt der nächsten Übereinstimmung mit regulären Ausdrücken

mb_ereg_search – Übereinstimmung mit regulären Multibyte-Ausdrücken für vordefinierte Multibyte-Zeichenfolge

mb_ereg – Übereinstimmung regulärer Ausdrücke mit Multibyte-Unterstützung

mb_eregi_replace – Ersetzen Sie reguläre Ausdrücke durch Multibyte-Unterstützung, wobei Groß- und Kleinschreibung ignoriert wird

mb_eregi – Übereinstimmung regulärer Ausdrücke ignoriert Groß- und Kleinschreibung mit Multibyte-Unterstützung

mb_get_info — Rufen Sie die internen Einstellungen von mbstring ab

mb_http_input – HTTP-Eingabezeichenkodierung erkennen

mb_http_output – HTTP-Ausgabezeichenkodierung festlegen/erhalten

mb_internal_encoding – Interne Zeichenkodierung festlegen/erhalten

mb_lingual – Aktuelle Sprache festlegen/abrufen

mb_list_encodings – Ein Array aller unterstützten Kodierungen zurückgeben

mb_output_handler – Rückruffunktion zum Konvertieren der Zeichenkodierung im Ausgabepuffer

mb_parse_str – GET/POST/COOKIE-Daten analysieren und globale Variable festlegen

mb_preferred_mime_name – MIME-Zeichenfolge abrufen

mb_regex_encoding – Zeichenkodierung für Multibyte-Regex festlegen/erhalten

mb_regex_set_options – Festlegen / Holen Sie sich die Standardoptionen für mbregex-Funktionen

mb_send_mail – Senden Sie eine verschlüsselte E-Mail

mb_split – Teilen Sie eine Multibyte-Zeichenfolge mithilfe regulärer Ausdrücke

mb_strcut – Holen Sie sich einen Teil von a Zeichen

mb_strimwidth – Eine um die angegebene Breite gekürzte Zeichenfolge abrufen

mb_stripos – Das erste Vorkommen einer Zeichenfolge in einer anderen Zeichenfolge ohne Berücksichtigung der Groß-/Kleinschreibung finden

mb_stristr – Groß-/Kleinschreibung -unempfindlich findet das erste Vorkommen einer Zeichenfolge in einer anderen Zeichenfolge

mb_strlen – Ruft die Länge einer Zeichenfolge ab

mb_strpos – Findet das erste Vorkommen einer Zeichenfolge in einer anderen Zeichenfolge Position

mb_strrchr – Finden Sie das letzte Vorkommen eines bestimmten Zeichens in einer anderen Zeichenfolge

mb_strrichr – Suchen Sie das letzte Vorkommen eines bestimmten Zeichens in einer anderen Zeichenfolge, ohne Berücksichtigung der Groß- und Kleinschreibung

mb_strripos – Suchen Sie das letzte Vorkommen von eine Zeichenfolge in einer Zeichenfolge, ohne Berücksichtigung der Groß- und Kleinschreibung

mb_strrpos – Finden Sie das letzte Vorkommen einer Zeichenfolge in einer Zeichenfolge

mb_strstr – Suchen Sie das erste Vorkommen einer Zeichenfolge in einer anderen Zeichenfolge

mb_strtolower – Machen Sie die Zeichenfolge in Kleinbuchstaben

mb_strtoupper – Machen Sie die Zeichenfolge in Großbuchstaben

mb_strwidth – Gibt die Breite der Zeichenfolge zurück

mb_substitute_character – Setzt/erhält das Ersatzzeichen

mb_substr_count – Zählt die Anzahl der Vorkommen einer Zeichenfolge

mb_substr – Ermittelt den Teil der Zeichenfolge


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP-E-Mail-bezogene FunktionenNächster Artikel:PHP-E-Mail-bezogene Funktionen