


Ausführliche Erklärung, wie PHP die Länge chinesischer Strings korrekt berechnet
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:
- ASCII-Zeichen: Wenn Sie die Länge von ASCII-Zeichen berechnen, verwenden Sie einfach direkt die Funktion strlen().
- 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:
- 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
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.
- 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
Ähnlich der Funktion mb_strlen(), Sie müssen außerdem bestätigen, bevor Sie die Funktion iconv_strlen() verwenden. Die Erweiterung iconv ist installiert.
- 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");
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!

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



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

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.

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

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

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

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

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

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