Heim >Backend-Entwicklung >PHP-Tutorial >Berechnung der PHP-Stringlänge – Einführung in die Verwendung der Funktion strlen()
Funktion strlen() und Funktion mb_strlen()
In PHP gibt die Funktion strlen() die Länge der Zeichenfolge zurück. Der Funktionsprototyp lautet wie folgt:
int strlen(string string_input);
Der Parameter string_input ist der zu verarbeitende String.
Die Funktion strlen() gibt die von der Zeichenfolge belegte Bytelänge zurück. Ein englischer Buchstabe, eine Zahl und verschiedene Symbole belegen alle ein Byte und ihre Länge beträgt 1. Ein Mittagszeichen belegt zwei Bytes, daher beträgt die Länge eines Mittagszeichens 2. Zum Beispiel:
<?php echo strlen("www.sunchis.com"); echo strlen("三知开发网"); ?>
"echo strlen("www.sunchis.com");" Ergebnisse: 15 Ergebnis: 15
Hier ist eine Frage, ob ein chinesisches Schriftzeichen besetzt ist 2 Bytes? „Sanzhi Development Network“ hat eindeutig fünf chinesische Schriftzeichen, wie könnte das Ergebnis also 15 sein?
Der Grund ist folgender: Bei der Berechnung von strlen() wird ein chinesisches UTF-8-Zeichen so behandelt, als hätte es eine Länge von 3. Wie kann die Länge der Zeichenfolge genau berechnet werden, wenn Chinesisch und Englisch gemischt sind? Hier muss eine weitere Funktion mb_strlen() eingeführt werden. Die Verwendung der Funktion mb_strlen() ist fast die gleiche wie strlen(), außer dass es einen zusätzlichen Parameter gibt, der die Zeichensatzkodierung angibt. Der Funktionsprototyp lautet:
int mb_strlen(string string_input, string encode);Prinzipielle Analyse: Bei der Berechnung von
<?php $str = "三知sunchis开发网"; echo strlen($str)."<br>"; //结果:22 echo mb_strlen($str,"UTF8")."<br>"; //结果:12 $strlen = (strlen($str)+mb_strlen($str,"UTF8"))/2; echo $strlen; //结果:17 ?>
strlen() beträgt die Länge der in UTF-8 behandelten chinesischen Zeichen 3 Daher beträgt die Länge von „Sanzhi Sunchis Development Network“ 5×3+7×1=22
Wenn bei der Berechnung von mb_strlen der interne Code als UTF8 ausgewählt wird, wird ein chinesisches Zeichen mit einer Länge von 1 berechnet. also beträgt die Länge des „Sanzhi sunchis Development Network“ 5×1+7×1=12
Der Rest ist ein rein mathematisches Problem, daher werde ich hier nicht auf Details eingehen...
Hinweis: Wenn für mb_strlen ($str,'UTF-8') der zweite Parameter weggelassen wird, wird die interne Kodierung von PHP verwendet. Die interne Kodierung kann über die Funktion mb_internal_encoding() abgerufen werden. Es ist zu beachten, dass mb_strlen keine Kernfunktion von PHP ist. Bevor Sie es verwenden, müssen Sie sicherstellen, dass php_mbstring.dll in php.ini geladen ist, d. h., dass die Zeile „extension=php_mbstring.dll“ vorhanden ist und ist nicht auskommentiert, sonst liegt ein undefiniertes Funktionsproblem vor.
Weitere Informationen zur Berechnung der PHP-Stringlänge – Einführung in die Verwendung der Funktion strlen() finden Sie auf der chinesischen PHP-Website für verwandte Artikel!