细说PHP中strlen和mb_strlen的区别_PHP教程
在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别。
下面通过例子,讲解这两者之间的区别。
先看例子:
<ol class="dp-c"> <li class="alt"><span><span><?php </span></span></span></li> <li> <span class="comment">//测试时文件的编码方式要是UTF8 </span><span> </span> </li> <li class="alt"> <span class="vars">$str</span><span>=</span><span class="string">'中文a字1符'</span><span>; </span> </li> <li> <span class="func">echo</span><span> </span><span class="func">strlen</span><span>(</span><span class="vars">$str</span><span>).</span><span class="string">'<br>'</span><span>;</span><span class="comment">//14 </span><span> </span> </li> <li class="alt"> <span class="func">echo</span><span> mb_strlen(</span><span class="vars">$str</span><span>,</span><span class="string">'utf8'</span><span>).</span><span class="string">'<br>'</span><span>;</span><span class="comment">//6 </span><span> </span> </li> <li> <span class="func">echo</span><span> mb_strlen(</span><span class="vars">$str</span><span>,</span><span class="string">'gbk'</span><span>).</span><span class="string">'<br>'</span><span>;</span><span class="comment">//8 </span><span> </span> </li> <li class="alt"> <span class="func">echo</span><span> mb_strlen(</span><span class="vars">$str</span><span>,</span><span class="string">'gb2312'</span><span>).</span><span class="string">'<br>'</span><span>;</span><span class="comment">//10 </span><span> </span> </li> <li><span>?> </span></li> </ol>
结果分析:在strlen计算时,对待一个UTF8的中文字符是3个长度,所以“中文a字1符”长度是3*4+2=14,在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6 .
利用这两个函数则可以联合计算出一个中英文混排的串的占位是多少(一个中文字符的占位是2,英文字符是1)
<ol class="dp-c"><li class="alt"><span><span class="func">echo</span><span> (</span><span class="func">strlen</span><span>(</span><span class="vars">$str</span><span>) + mb_strlen(</span><span class="vars">$str</span><span>,</span><span class="string">'UTF8'</span><span>)) / 2; </span></span></li></ol>
例如 “中文a字1符” 的strlen($str)值是14,mb_strlen($str)值是6,则可以计算出“中文a字1符”的占位是10.
<ol class="dp-c"><li class="alt"><span><span class="func">echo</span><span> mb_internal_encoding(); </span></span></li></ol>
PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得 到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在 UTF-8编码下,一个汉字占3个字节)。
采用mb_strlen函数可以较好地解决这个问题。mb_strlen的用法和 strlen类似,只不过它有第二个可选参数用于指定字符编码。例如得到UTF-8的字符串$str长度,可以用 mb_strlen($str,'UTF-8')。如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过 mb_internal_encoding()函数得到。
需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Deepseek: Eingehender Vergleich zwischen R1- und V3-Versionen hilft Ihnen, den besten AI-Assistenten auszuwählen! Deepseek hat bereits zig Millionen von Benutzern, und seine KI -Dialogfunktion wurde gut aufgenommen. Aber sind Sie verwirrt, wenn Sie sich den Versionen der R1- und V3 stellen? In diesem Artikel werden die Unterschiede zwischen den beiden im Detail erläutert, um die am besten geeignete Version auszuwählen. Der Kernunterschied zwischen Deepseekl1 und V3-Version: Features Das Designziel der V3-Version konzentriert Milliarden bis 70 Milliarden MOE Hybrid -Expertenarchitektur, die Gesamtparameter sind bis zu 671 Milliarden, jedes Token wird um 37 Milliarden aktiviert

Deepseekai Tool User Guide und FAQ Deepseek ist ein leistungsstarkes KI -Intelligent -Tool. FAQ: Der Unterschied zwischen verschiedenen Zugriffsmethoden: Es gibt keinen Unterschied in der Funktion zwischen Webversion, App -Version und API -Aufrufen, und App ist nur ein Wrapper für die Webversion. Die lokale Bereitstellung verwendet ein Destillationsmodell, das der Vollversion von Deepseek-R1 geringfügig unteren ist, das 32-Bit-Modell theoretisch 90% Vollversionsfunktion. Was ist eine Taverne? SillyTervern ist eine Front-End-Oberfläche, die das KI-Modell über API oder Ollama anruft. Was ist Breaking Limit

Der Kryptowährungsmarkt boomt, und Bitcoin als Führungskraft hat die Aufmerksamkeit vieler Investoren auf sich gezogen. Viele Menschen sind neugierig: Haben Bitcoin Aktien? Die Antwort ist nein. Bitcoin selbst ist keine Aktie, aber Anleger können indirekt in Bitcoin-bezogene Vermögenswerte über verschiedene Kanäle investieren, die in diesem Artikel ausführlich erläutert werden. Alternativen zu Bitcoin -Investitionen: Anstatt direkt in Bitcoin zu investieren, können Anleger am Bitcoin -Markt teilnehmen. Dies ist eine relativ bequeme Option für Anleger, die an Aktieninvestitionen gewöhnt sind, ohne Bitcoin direkt halten zu müssen. Aktien des Bitcoin -Bergbauunternehmens: Das Geschäft dieser Unternehmen ist Bitcoin Mining und Holding Bitcoin

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

In den traditionellen Finanzmärkten bezieht sich der Handel vor dem Markt und nach dem Markt für Handelsaktivitäten außerhalb des regulären Handelszeitraums. Obwohl der Kryptowährungsmarkt rund um die Uhr handelt, bieten Handelsplattformen wie Bitget auch ähnliche Funktionen, insbesondere einige umfassende Plattformen, die gleichzeitig Aktien und Kryptowährungen handeln. In diesem Artikel werden die Unterschiede im Handel mit Vormarkt und After-Market klargestellt und die Auswirkungen auf den Währungspreis untersucht. Vier wichtige Unterschiede zwischen dem Handel vor dem Markt und nach dem Markt: Die Hauptunterschiede zwischen dem Handel vor dem Markt und dem Handel und regulären Handelsperioden nach dem Markt sind in vier Aspekten: Handelszeit, Liquidität, Preisschwankungen und Handelsvolumen: Handelszeit: Vormarkethandel erfolgt, bevor der offizielle Handel nach dem Handel nach dem Handel nach dem Handel nach dem Handel nach dem Handel nach dem Handel nach dem Handel ist. Liquidität: Die Liquidität des Handels vor und nach der Zeit ist niedrig, es gibt nur wenige Händler, und die Preisdifferenz und die Angebotspreisdifferenz ist groß.
