Dieser Artikel stellt hauptsächlich den Unterschied zwischen der in PHP integrierten Funktion strlen und der mbstring-Erweiterungsfunktion mb_strlen vor. Jetzt kann ich ihn mit Ihnen teilen
#EXAMPLE
$str_uncode = "简体中文Chinese(Simplified)"; //统计字符串长度 echo strlen($str_uncode).'<br>';//结果:31 echo mb_strlen($str_uncode, 'UTF-8').'<br>';结果:23 echo mb_strlen($str_uncode, 'GBK').'<br>';结果:25 echo mb_strlen($str_uncode, 'GB2312').'<br>';结果27
Ergebnisanalyse:
strlen zählt ein chinesisches Zeichen als 3 Bytes (komplexe chinesische Zeichen werden als 4 Bytes gezählt)
mb_strlen 'UTF- 8' Die Codierung eines chinesischen Zeichens wird als ein Byte berechnet.
Die in PHP integrierte String-Längenfunktion strlen kann chinesische Strings nicht korrekt verarbeiten. Sie ermittelt nur die Anzahl der von dem String belegten Bytes. Bei der GB2312-Codierung für Chinesisch beträgt der von strlen erhaltene Wert das Doppelte der Anzahl chinesischer Zeichen, während für UTF-8-codiertes Chinesisch der Unterschied dreimal beträgt (bei UTF-8-Codierung belegt ein chinesisches Zeichen 3 Bytes).
Die Verwendung der Funktion mb_strlen kann dieses Problem besser lösen. Die Verwendung von mb_strlen ähnelt strlen, außer dass es einen zweiten optionalen Parameter zur Angabe der Zeichenkodierung hat. Um beispielsweise die Länge der UTF-8-Zeichenfolge $str zu ermitteln, können Sie mb_strlen($str,'UTF-8') verwenden.
Wenn der zweite Parameter weggelassen wird, wird die interne Kodierung von PHP verwendet. Die interne Kodierung kann über die Funktion mb_internal_encoding() abgerufen werden.
mb_strlen ist keine PHP-Kernfunktion. Bevor Sie sie 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 wurde nicht auskommentiert, sonst erscheint eine Fehlermeldung. Das Problem der Funktionsdefinition.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
So scannen Sie tote URL-Links mit PHP
So verwenden Sie var_export in PHP
Das obige ist der detaillierte Inhalt vonAnalyse der Unterschiede zwischen der in PHP integrierten Funktion strlen und der Erweiterungsfunktion mb_strlen von mbstring. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!