Analyse der Unterschiede zwischen der in PHP integrierten Funktion strlen und der Erweiterungsfunktion mb_strlen von mbstring

不言
Freigeben: 2023-04-03 08:16:02
Original
1913 Leute haben es durchsucht

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).&#39;<br>&#39;;//结果:31
echo mb_strlen($str_uncode, &#39;UTF-8&#39;).&#39;<br>&#39;;结果:23
echo mb_strlen($str_uncode, &#39;GBK&#39;).&#39;<br>&#39;;结果:25
echo mb_strlen($str_uncode, &#39;GB2312&#39;).&#39;<br>&#39;;结果27
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!