Beim Umgang mit Multibyte -Saiten bietet die Mbtring -Erweiterung eine starke Unterstützung für PHP. Unter ihnen ist MB_get_info () eine sehr praktische Funktion, um den internen Einstellungszustand von Mbstring zu erhalten. Viele Entwickler werden jedoch während des Gebrauchs auf eine gewisse Verwirrung stoßen, z.
mb_get_info () ist eine Funktion in der Php Mbstring -Erweiterung, um die aktuellen Multibyte -String -Umgebungseinstellungsinformationen zu erhalten. Es hat drei Verwendungen:
// Holen Sie sich alle Einstellungsinformationen
$info = mb_get_info();
// Holen Sie sich den angegebenen Artikel
$encoding = mb_get_info("internal_encoding");
// Holen Sie sich die aktuellen Codierungseinstellungen
$current_encoding = mb_get_info("encoding");
Die zurückgegebenen Daten sind normalerweise ein assoziatives Array, und der Inhalt kann wie folgt sein:
Array
(
[internal_encoding] => UTF-8
[http_input] => pass
[http_output] => pass
[input_encoding] => UTF-8
[output_encoding] => UTF-8
[language] => neutral
[encoding_translation] => Off
)
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob PHP mit mbstring geladen wird:
if (function_exists('mb_get_info')) {
echo "mbstring Ermöglicht";
} else {
echo "mbstring Nicht aktiviert";
}
Wenn die Rückgabe mbstring nicht aktiviert ist , müssen Sie die Erweiterung in php.ini aktivieren:
extension=mbstring
Starten Sie dann den PHP -Dienst neu.
Manchmal müssen Sie möglicherweise die Änderungen vor und nach dem Einrichten der Codierung überprüfen:
echo "Erste Informationen:\n";
print_r(mb_get_info());
mb_internal_encoding("ISO-8859-1");
mb_http_output("UTF-8");
echo "Geänderte Informationen:\n";
print_r(mb_get_info());
Dieser Vergleichsprozess hilft zu positionieren, ob Ihre Einstellungen tatsächlich in Kraft sind.
In praktischen Anwendungen können wir den Rückgabewert im Protokoll für die nachfolgende Analyse aufzeichnen:
file_put_contents("/var/log/mbstring_debug.log", print_r(mb_get_info(), true));
Mögliche Gründe:
Mbstring -Erweiterung nicht aktiviert
Der Parameter-Enable-Mbstring wurde beim Kompilieren von PHP nicht hinzugefügt
Lösung:
Überprüfen Sie Php.ini oder führen Sie Phpinfo () aus, um festzustellen, ob das Mbstring -Modul enthalten ist
Kompilieren Sie PHP mit dem folgenden Befehl (für die Installation von Quellcode):
./configure --enable-mbstring
make && make install
Coding_translation gibt an, ob die Eingabe/Ausgabe -Codierungskonvertierung aktiviert ist. Die Standardeinstellung ist aus dem Status und wenn Sie mb_output_handler () verwenden, kann er automatisch aktiviert werden.
Die Öffnungsmethode lautet wie folgt:
output_handler = mb_output_handler
Oder im Code aktivieren:
ob_start("mb_output_handler");
Wenn Sie feststellen, dass sich der von mb_get_info () zurückgegebene Wert nach der Einstellung der Codierung nicht geändert hat, ist es möglicherweise, dass der Umfang der Einstellung falsch ist.
mb_internal_encoding("UTF-8"); // richtig:Stellen Sie die interne Codierung ein
ini_set("default_charset", "UTF-8"); // Betrifft nur die Ausgabe
Die beiden Funktionen sind unterschiedlich und müssen bei der Verwendung unterschieden werden.
In den tatsächlichen Projekten, wie beispielsweise einer Website, die mehrsprachige Zeichen übernimmt, können wir den folgenden Code zur Initialisierungskonfigurationsdatei hinzufügen:
mb_internal_encoding("UTF-8");
mb_http_input("UTF-8");
mb_http_output("UTF-8");
mb_language("uni");
if (isset($_GET['debug_mb'])) {
echo "<pre>";
print_r(mb_get_info());
echo "</pre>";
}
Wenn Sie auf https://gitbox.net/index.php?debug_mb=1 zugreifen, können Sie schnell die aktuellen Mbstring -Konfigurationsinformationen für das einfache Debuggen erhalten.
mb_get_info () ist ein unverzichtbares Werkzeug zum Verständnis und Debuggen der PHP -Multibyte -String -Umgebung. Durch die Erklärung dieses Artikels glaube ich, dass Sie die Verwendungsmethode bereits beherrschen und häufig gemeinsame Probleme finden und lösen können. Es wird Ihr zuverlässigste Assistent im Umgang mit sensiblen Szenarien wie Internationalisierung und Charaktercodierungskonvertierung sein.
Weitere Informationen zu PHP -Codierungsfähigkeiten finden Sie in unserer offiziellen Dokumentation oder bei der Entwicklergemeinschaft: https://gitbox.net/docs/mbstring .