Ich bin dabei, meine PHP-Site Unicode-fähig zu machen. Ich frage mich, ob jemand Erfahrung mit der mbstring.func_overload
Einstellung hat, die die normalen String-Funktionen (z. B. strlen
) mit ihren Multi-Byte-Äquivalenten (mb_strlen
) ersetzt. Es gibt keine Kommentare auf der PHP-Handbuchseite.Sollte ich Multi-Byte-Überladung verwenden (mbstring.func_overload)?
Gibt es mögliche Probleme, die ich beachten sollte? Fälle, in denen das Aufrufen der Multi-Byte-Version eine schlechte Idee ist?
Ich nehme an, ein Beispiel wären Funktionen, die sich mit der Verschlüsselung beschäftigen, da sie mit Zeichenfolgen und nicht mit Zeichenketten rechnen können.
Außerdem enthält die Handbuchseite einen Hinweis: "Es wird nicht empfohlen, die Funktionsüberladungsoption im Kontext pro Verzeichnis zu verwenden, da es in einer Produktionsumgebung noch nicht stabil genug ist und zu undefiniertem Verhalten führen kann . "
Bedeutet dies, dass es in einem Kontext pro Verzeichnis nicht stabil ist oder es im Allgemeinen nicht stabil ist? Die Formulierung ist unklar.
mbstring.func_overload hat mich nur schlecht durchgebissen, und ich muss mich wundern, wie viele der derzeit ungelösten Probleme, die ich erhalten habe, darauf zurückzuführen sind. Ich schrieb eine Klasse, um ePub-Dateien zu generieren, und eine Companion-Klasse, um Zip-Dateien zu bearbeiten. Es gab einige Gründe, warum die in Zip eingebauten Funktionen nicht nützlich waren. Ich habe das ganze Wochenende gebraucht, bis der, der den Fehler gemeldet hat, ihren Server für utf-8 eingerichtet hat. Ich wusste nicht einmal, dass mbstring.func_overload existiert, und jetzt stehe ich in Schwierigkeiten, weil das Setzen von mbstring auf ascii auch nicht möglich ist, da ich * auch * UTF-8 mit mb_-Funktionen verwende. –