MB_STRCUT ist eine sehr praktische Funktion, wenn sie in PHP mit Multibyte -Zeichen (wie Chinesisch, Japanisch, Koreanisch usw.) zu tun haben. Im Gegensatz zu Substr wird sichergestellt, dass Multi-Byte-Zeichen nicht abgeschnitten werden, wodurch verstümmelte Probleme vermieden werden. In diesem Artikel wird detailliert erklärt, wie MB_STRCUT korrekt verwendet wird, um Multi-Byte-Zeichenfolgen abzufangen und sie in Kombination mit tatsächlichen Fällen zu demonstrieren.
Bevor Sie beginnen, verstehen wir kurz den Unterschied zwischen MB_STRCUT und MB_SUBSTR :
mb_substr wird durch die Anzahl der Zeichen abgefangen;
mb_strcut wird durch Bytelänge abgefangen, aber es wird sicherstellen, dass die Zeichen nicht verkürzt werden (dh nur ein Teil eines chinesischen Charakters wird nicht abgefangen);
Beide unterstützen die angegebene Zeichenkodierung.
Dies bedeutet, dass Mb_Strcut besser zum Verarbeiten von Text auf Byte -Ebene geeignet ist, z.
string mb_strcut(string $string, int $start, int $length = null, string $encoding = null)
$ String : Die zu verarbeitende Zeichenfolge;
$ start : Startposition (berechnet durch Bytes);
$ Länge : Die Anzahl der zu abgefangenen Bytes;
$ codierung : Zeichencodierung (wie UTF-8, GBK usw.), optional.
<?php
$str = "Hallo,Welt!";
$result = mb_strcut($str, 0, 6, "UTF-8");
echo $result; // Ausgabe:Hallo
?>
Erläuterung: Jeder chinesische Charakter nimmt 3 Bytes unter UTF-8-Codierung ein, daher sind 6 Bytes genau zwei chinesische Zeichen.
Wenn Sie Substr verwenden, um Chinesisch abzufangen, ist der verstümmelte Code anfällig für eintritt:
<?php
$str = "Hallo,Welt!";
echo substr($str, 0, 5); // 可能Ausgabe乱码
?>
Wechseln Sie zu MB_Strcut, um dieses Problem zu vermeiden:
<?php
$str = "Hallo,Welt!";
echo mb_strcut($str, 0, 5, "UTF-8"); // Ausgabe:Du
?>
Wenn Sie eine Artikelzusammenfassung abfangen müssen, können Sie die folgende Methode verwenden:
<?php
$content = "Willkommen auf unserer offiziellen Website:https://gitbox.net/blog/php-mb_strcut-use";
$summary = mb_strcut($content, 0, 60, "UTF-8");
echo $summary . "...";
?>
Dadurch wird sicher eine Zusammenfassung der festen Länge auf der Webseite ohne verstümmelten Code angezeigt.
Da Multi-Byte-Zeichen unter verschiedenen Codierungen unterschiedliche Byte-Längen einnehmen, wird empfohlen, MB_STRLEN und MB_STRCUT für die dynamische Verarbeitung zu verwenden:
<?php
function safe_cut($str, $maxBytes, $encoding = "UTF-8") {
return mb_strcut($str, 0, $maxBytes, $encoding);
}
?>
Auf diese Weise können Sie Byte -Grenzen flexibel festlegen, wie z. B.:
echo safe_cut("Dies ist aPHPBeispiel für die String -Verarbeitung", 9); // Ausgabe:Das ist
MB_STRCUT ist ein Byte-Ebene-Betrieb und eignet sich daher besonders für eine präzise Längensteuerung beim Speichern oder Übertragen von Daten.
Es wird keine HTML -Codierung oder Filterketten und muss in Kombination mit Funktionen wie HTMLSpecialChars verwendet werden.
Stellen Sie sicher, dass der Server die Mbtring -Erweiterung aktiviert und über phpinfo () angezeigt werden kann.
MB_STRCUT ist ein wichtiges Werkzeug in PHP zum Umgang mit Multibyte -Zeichenfolgen, insbesondere für Szenarien, in denen eine präzise Steuerung der Bytelänge erforderlich ist. Durch die angemessene Einstellung der Startposition und Länge und die Kombination von Codierungseinstellungen können Sie leicht verstümmelte Codeprobleme vermeiden und die Robustheit des Programms verbessern. Nutzen Sie die Entwicklung von MB_Strcut in der Entwicklung, was Sie beim Umgang mit mehrsprachigen Zeichenfolgen komfortabler machen kann.