Heim  >  Artikel  >  Backend-Entwicklung  >  Vergleich von strlen() und mb_strlen() in PHP

Vergleich von strlen() und mb_strlen() in PHP

不言
不言Original
2018-04-20 12:13:201586Durchsuche

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_strlenErmitteln 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


Wenn in mb_strlen() die Codierung utf-8 ist, beträgt die Länge einer chinesischen Zeichenausgabe 1.


I Ich werde unten einen Absatz zum besseren Verständnis veröffentlichen:

<?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()输出&#39;你好&#39;的长度".strlen($_str_c)."<br />";
	/**
	 * 输出:
	 * strlen()输出hello的长度5
	 * strlen()输出&#39;你好&#39;的长度6
	 */
	
	//mb_strlen()
	echo "mb_strlen( 不指定字符编码 )输出hello的长度".mb_strlen($_str_y)."<br />";
	echo "mb_strlen( 不指定字符编码 )输出&#39;你好&#39;的长度".mb_strlen($_str_c)."<br />";	
	/**
	 * mb_strlen( 不指定字符编码 )输出hello的长度5
	 * mb_strlen( 不指定字符编码 )输出&#39;你好&#39;的长度6
	 */
	
	//mb_strlen()
	echo "mb_strlen( utf-8 )输出hello的长度".mb_strlen($_str_y,&#39;utf-8&#39;)."<br />";
	echo "mb_strlen( utf-8 )输出&#39;你好&#39;的长度".mb_strlen($_str_c,&#39;utf-8&#39;)."<br />";
	
	/**
	 * 输出:
	 * mb_strlen( utf-8 )输出hello的长度5
	 * mb_strlen( utf-8 )输出&#39;你好&#39;的长度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!

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