Der Inhalt dieses Artikels handelt vom Vergleich zwischen strlen() und mb_strlen() in PHP. Jetzt kann ich ihn mit Ihnen teilen.
Dies Der Artikel ist ein Original des Bloggers. Bitte geben Sie bei Nachdruck die Quelle an.
Schauen wir uns zunächst an, was in der offiziellen Dokumentation steht;
strlen() – wird verwendet, um die Stringlänge zu ermitteln
int strlen ( string $string
)
Gibt die Länge der angegebenen Zeichenfolge string
zurück.
mb_strlen — Ermitteln Sie die Länge der Zeichenfolge
gemischt mb_strlen ( string $str
[, string $encoding
= mb_internal_encoding() ] )
Ermitteln Sie die Länge eines Strings.
str: String zur Überprüfung der Länge.
Kodierung: Der Parameter encoding
ist die Zeichenkodierung. Wenn es weggelassen wird, wird die interne Zeichenkodierung verwendet.
Hinweis: Die Funktion strlen() kann chinesische Zeichenfolgen nicht korrekt verarbeiten. Sie ruft nur die Anzahl der von der Zeichenfolge
In strlen() ist die Codierung GB2312 und ein chinesisches Zeichen belegt 2 Bytes. Bei der Codierung als utf-8 belegt ein chinesisches Zeichen 3 Bytes. Allerdings<?php header("Content-type:text/html;charset=utf-8"); echo "关于字符串你长度获取的测试"."<br />"; $_str_y = "hello"; $_str_c = "你好"; //strlen() echo "strlen()输出hello的长度".strlen($_str_y)."<br />"; echo "strlen()输出'你好'的长度".strlen($_str_c)."<br />"; /** * 输出: * strlen()输出hello的长度5 * strlen()输出'你好'的长度6 */ //mb_strlen() echo "mb_strlen( 不指定字符编码 )输出hello的长度".mb_strlen($_str_y)."<br />"; echo "mb_strlen( 不指定字符编码 )输出'你好'的长度".mb_strlen($_str_c)."<br />"; /** * mb_strlen( 不指定字符编码 )输出hello的长度5 * mb_strlen( 不指定字符编码 )输出'你好'的长度6 */ //mb_strlen() echo "mb_strlen( utf-8 )输出hello的长度".mb_strlen($_str_y,'utf-8')."<br />"; echo "mb_strlen( utf-8 )输出'你好'的长度".mb_strlen($_str_c,'utf-8')."<br />"; /** * 输出: * mb_strlen( utf-8 )输出hello的长度5 * mb_strlen( utf-8 )输出'你好'的长度2 */ ?>
Hinweis: mb_strlen ist keine PHP-Kernfunktion. Bevor Sie es verwenden, müssen Sie sicherstellen, dass php_mbstring.dll in PHP geladen ist .ini, das heißt, stellen Sie sicher, dass „extension=php_mbstring.dll“ eine Zeile vorhanden ist und nicht auskommentiert ist, da sonst ein Problem mit der undefinierten Funktion auftritt.
Verwandte Empfehlungen:
Der Unterschied zwischen abstrakten Klassen und Schnittstellen in PHP
Das obige ist der detaillierte Inhalt vonVergleich von strlen() und mb_strlen() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!