Heim  >  Artikel  >  Backend-Entwicklung  >  PHP fängt die Funktionen mb_substr() und mb_strcut() mit chinesischer Stringlänge ab

PHP fängt die Funktionen mb_substr() und mb_strcut() mit chinesischer Stringlänge ab

黄舟
黄舟Original
2017-02-06 15:12:351289Durchsuche

Die Funktion substr() kann zum Teilen von Text verwendet werden. 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_substr()/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. Sie müssen php_mbstring.dll in php.ini öffnen.

Zum Beispiel:

<?php
echo mb_substr(‘这样一来我的字符串就不会有乱码^_^’, 0, 7, ‘utf-8′);
?>

Ausgabe: Auf diese Weise meine Worte

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

Ausgabe: Auf diese Weise

As Aus dem obigen Beispiel ist ersichtlich, 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 ...

Der obige Absatz ist ein Auszug aus dem Internet, die Ergebnisse werden erhalten durch meine eigenen Tests.

Persönliches Verständnis:
Die Funktion mb_substr() stellt eine Einheit für entweder englische oder chinesische Schriftzeichen dar.
Die Funktion mb_strcut() verfügt über 3 Einheiten für chinesische Schriftzeichen und 1 Einheit für englische Schriftzeichen.

Zum Beispiel:

<?php
$str = “这样abcd一来”;
echo “mb_substr:”.mb_substr($str, 0, 5, ‘utf-8′);
echo “<br>”;
echo “mb_strcut:”.mb_strcut($str, 0, 8, ‘utf-8′);
?>

Das Ausgabeergebnis ist wie folgt:

mb_substr: 这样abc
mb_strcut:  这样ab

Anhang:

Der Unterschied zwischen strlen und mb_strlen:

<?php 
$str=”中文a字1符”; 
echo strlen($str); 
echo “<br />”; 
echo mb_strlen($str,’UTF8′); 
?>

Ausgabeergebnis:

14 
6

Das Obige ist der Inhalt der Funktionen mb_substr() und mb_strcut() PHP fängt die Länge chinesischer Zeichenfolgen ab. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


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