Heim Backend-Entwicklung PHP-Tutorial Ausführliche Erklärung, wie PHP die Länge chinesischer Strings korrekt berechnet

Ausführliche Erklärung, wie PHP die Länge chinesischer Strings korrekt berechnet

Mar 20, 2023 pm 04:56 PM
php php字符串

Bei der PHP-Programmierung stoßen wir häufig auf Szenarien, in denen wir die Länge eines Strings berechnen müssen. Im Allgemeinen sind wir es gewohnt, die Funktion strlen() oder mb_strlen() zur Berechnung der Stringlänge zu verwenden. Beim Umgang mit chinesischen Zeichenfolgen werden wir jedoch feststellen, dass es bei der Verwendung der Funktion strlen () zu Problemen kommt, da die Länge chinesischer Zeichen nicht gemäß der allgemeinen Zeichenberechnungsmethode berechnet wird. Wie können wir also die Länge chinesischer Strings in PHP richtig berechnen? Lassen Sie uns weiter unten verwandte Themen besprechen.

1. So berechnen Sie die Stringlänge in PHP

In PHP gibt es zwei Möglichkeiten, die Stringlänge zu berechnen: Eine ist die einfache Zeichenzählung und die andere basiert auf der tatsächlichen Zeichenlänge. Bei der Berechnung der Länge einer Zeichenfolge treten zwei Situationen auf:

  1. ASCII-Zeichen: Wenn Sie die Länge von ASCII-Zeichen berechnen, verwenden Sie einfach direkt die Funktion strlen().
  2. Chinesische Schriftzeichen: Chinesische Schriftzeichen belegen zwei Bytes in Unicode und zwei Bytes oder drei Bytes in GBK. Bei der Berechnung der Länge chinesischer Schriftzeichen muss diese anhand der tatsächlichen Länge der Schriftzeichen berechnet werden.

2. Das Problem des Missbrauchs der Funktion strlen()

Die Funktion strlen() ist eine grundlegende Funktion in PHP, die zur Berechnung der Länge einer Zeichenfolge verwendet wird. Bei der Verarbeitung chinesischer Zeichenfolgen treten jedoch Probleme bei der Verwendung der Funktion strlen() auf und die Längenberechnung ist ungenau. Dies liegt daran, dass PHP standardmäßig die ASCII-Kodierung verwendet und bei Unicode-kodierten chinesischen Zeichen ein Zeichen in mehrere Bytes zerlegt wird, was zu einem Fehler bei der Berechnung der Länge führt.

Wenn Sie beispielsweise die Funktion strlen() verwenden, um die Länge der chinesischen Zeichenfolge „China“ zu berechnen, gibt das Ergebnis 6 statt der erwarteten 2 zurück. Dies liegt daran, dass die Funktion strlen() die chinesischen Zeichen „中“ trennt " und "国" In 3 Bytes analysiert.

3. Lösung des Problems

Da die Funktion strlen() die Länge chinesischer Schriftzeichen normalerweise nicht berechnen kann, wie sollen wir die Länge chinesischer Schriftzeichen berechnen? Im Folgenden sind drei häufig verwendete Lösungen aufgeführt:

  1. Verwenden Sie die Funktion mb_strlen().

PHP stellt die Funktion mb_strlen() zur Lösung des Problems der Zeichenfolgenlänge bereit. Die Funktion mb_strlen() ist eine Multibyte-Stringlängenfunktion, die die tatsächliche Länge des Strings einschließlich chinesischer Zeichen zurückgibt. Wenn Sie die Funktion mb_strlen() verwenden, um die Länge einer chinesischen Zeichenfolge zu berechnen, müssen Sie den zweiten Parameter übergeben, um die Zeichenkodierung anzugeben, zum Beispiel:

$str = '中国';
$len = mb_strlen($str, 'UTF-8'); // 返回 2
Nach dem Login kopieren

Diese Methode ist die gebräuchlichste und empfohlene Methode, da mb_strlen() Die Funktion ist gut lesbar und wartbar. Beachten Sie, dass die mbstring-Erweiterung installiert werden muss, bevor Sie die Funktion mb_strlen() verwenden.

  1. Verwenden Sie die Funktion iconv_strlen()

Die Funktion iconv_strlen() kann zum Berechnen der Länge einer Zeichenfolge verwendet werden und kann auch die Länge chinesischer Zeichenfolgen korrekt verarbeiten. Die Struktur der Funktion iconv_strlen() ähnelt der Funktion strlen(), außer dass Sie bei der Berechnung der Länge den zweiten Parameter übergeben müssen, um die Zeichenkodierung anzugeben, zum Beispiel:

$str = '中国';
$len = iconv_strlen($str, 'UTF-8'); // 返回 2
Nach dem Login kopieren

Ähnlich der Funktion mb_strlen(), Sie müssen außerdem bestätigen, bevor Sie die Funktion iconv_strlen() verwenden. Die Erweiterung iconv ist installiert.

  1. Berechnen Sie die Anzahl der Bytes und teilen Sie sie durch 2 oder 3

Zusätzlich zur Verwendung der mit PHP gelieferten Funktionen können wir das Problem der Längenberechnung auch durch Berechnen der Anzahl der Bytes chinesischer Zeichen lösen wie folgt:

$str = '中国';
$len = ceil((strlen($str) - mb_strlen($str, "UTF-8")) / 2) + mb_strlen($str, "UTF-8");
Nach dem Login kopieren

Der obige Code berechnet zunächst die Anzahl der Bytes chinesischer Zeichen, dividiert sie dann durch die tatsächliche Länge von 2 oder 3 und addiert schließlich die Länge der englischen Zeichen, um die korrekte chinesische Zeichenfolgenlänge zu erhalten.

4. Zusammenfassung

Kurz gesagt, in der PHP-Programmierung ist die Berechnung der chinesischen Stringlänge etwas Besonderes und erfordert unsere besondere Aufmerksamkeit. Um Fehler zu vermeiden, sollten wir eine geeignete Berechnungsmethode wählen, z. B. die Verwendung der Funktion mb_strlen() oder iconv_strlen() oder die Berechnung der Länge, indem wir die Anzahl der Bytes zählen und durch 2 oder 3 dividieren. Dadurch kann die Richtigkeit der chinesischen Zeichenlänge sichergestellt und Berechnungsfehler und Datenanomalien verhindert werden.

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie PHP die Länge chinesischer Strings korrekt berechnet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

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.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP arbeitet mit Datenbank CakePHP arbeitet mit Datenbank Sep 10, 2024 pm 05:25 PM

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

See all articles