Die PHP-Funktion substr() kann Text teilen. Wenn der zu teilende Text jedoch chinesische Zeichen enthält, treten häufig Probleme auf. In diesem Fall können Sie die Funktion mb_substr()/mb_strcut verwenden. /mb_strcut ist dasselbe wie substr(), außer dass am Ende von mb_substr()/mb_strcut ein weiterer Parameter hinzugefügt werden muss, um die Codierung der Zeichenfolge festzulegen. Die meisten Server öffnen jedoch nicht php_mbstring.dll um php_mbstring.dll in php.ini zu öffnen.
Zum Beispiel:
<?php echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?>
Ausgabe: Also meine Worte
<?php echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?>
Ausgabe: So
Von oben Wie es sein kann Aus dem Beispiel geht hervor, dass mb_substr Zeichen nach Wörtern aufteilt, während mb_strcut Zeichen nach Bytes aufteilt, aber keines von beiden wird ein halbes Zeichen erzeugen...
Erklärung der mbstring-Funktion:
Das mbstring-Erweiterungsmodul von PHP bietet Die am häufigsten verwendete Methode ist die Verwendung von mbstring zum Aufteilen von chinesischen Multibyte-Zeichen. Dadurch kann das Auftreten halber Zeichen vermieden werden, da es sich um eine PHP-Erweiterung handelt und die Leistung auch besser ist als bei einigen benutzerdefinierten Multibyte-Zeichen Segmentierungsfunktionen.
Die mbstring-Erweiterung bietet mehrere Funktionen mit ähnlichen Funktionen, mb_substr und mb_strcut. Siehe deren Erklärung im Handbuch.
mb_substr
mb_substr() gibt den durch die Start- und Längenparameter angegebenen Teil von str zurück.
mb_substr() führt eine sichere Multibyte-Operation substr() basierend auf der Anzahl der Zeichen aus. Die Position wird ab dem Anfang von str gezählt. Die Position des zweiten Zeichens ist 1 und so weiter.
mb_strcut
mb_strcut() gibt den durch die Start- und Längenparameter angegebenen Teil von str zurück .
mb_strcut() führt eine äquivalente Operation wie mb_substr() mit einer anderen Methode aus. Wenn die Startposition das zweite Byte des Multibyte-Zeichens ist, beginnt sie mit dem ersten Byte des Multibyte-Zeichens >Es subtrahiert eine Zeichenfolge von str, die kürzer als die Länge ist, UND ein Zeichen, das nicht Teil einer Multibyte-Zeichenfolge ist oder sich nicht in der Mitte der Schichtsequenz befindet.
Ein weiteres Beispiel ist ein Textabsatz mit mb_substr und mb_strcut bzw. So führen Sie eine Segmentierung durch:
KLARER TEXT
CODE:
<?php $str = '我是一串比较长的中文-www.webjx.com'; echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8'); echo "<br>"; echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8'); ?>
mb_substr: Ich bin ein Vergleichsfolge
mb_strcut:Ich bin