Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied und die Verwendung von substr(), mb_substr() und mb_strcut (Abfangen chinesischer Zeichen)

Der Unterschied und die Verwendung von substr(), mb_substr() und mb_strcut (Abfangen chinesischer Zeichen)

巴扎黑
巴扎黑Original
2016-11-23 14:11:131213Durchsuche

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(&#39;这样一来我的字符串就不会有乱码^_^&#39;, 0, 7, &#39;utf-8&#39;); 
?>

Ausgabe: Also meine Worte

<?php 
echo mb_strcut(&#39;这样一来我的字符串就不会有乱码^_^&#39;, 0, 7, &#39;utf-8&#39;); 
?>

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:


Das Ausgabeergebnis lautet wie folgt:
<?php 
$str = &#39;我是一串比较长的中文-www.webjx.com&#39;; 
echo "mb_substr:" . mb_substr($str, 0, 6, &#39;utf-8&#39;); 
echo "<br>"; 
echo "mb_strcut:" . mb_strcut($str, 0, 6, &#39;utf-8&#39;); 
?>

mb_substr: Ich bin ein Vergleichsfolge
mb_strcut:Ich bin

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 – abstrakte KlasseNächster Artikel:php – abstrakte Klasse