Heim Backend-Entwicklung PHP-Tutorial Berechnung der PHP-Stringlänge – Einführung in die Verwendung der Funktion strlen()

Berechnung der PHP-Stringlänge – Einführung in die Verwendung der Funktion strlen()

Jan 05, 2017 am 11:45 AM

Funktion strlen() und Funktion mb_strlen()

In PHP gibt die Funktion strlen() die Länge der Zeichenfolge zurück. Der Funktionsprototyp lautet wie folgt:

int strlen(string string_input);
Nach dem Login kopieren

Der Parameter string_input ist der zu verarbeitende String.

Die Funktion strlen() gibt die von der Zeichenfolge belegte Bytelänge zurück. Ein englischer Buchstabe, eine Zahl und verschiedene Symbole belegen alle ein Byte und ihre Länge beträgt 1. Ein Mittagszeichen belegt zwei Bytes, daher beträgt die Länge eines Mittagszeichens 2. Beispiel:

<?php 
echo strlen("www.php.cn"); 
echo strlen("PHP中文网"); 
?>
Nach dem Login kopieren

Das laufende Ergebnis von „echo strlen(“www.php.cn“);“: 15 Das laufende Ergebnis von

“echo strlen(“PHP Chinese Network ");" :15

Hier ist eine Frage: Besetzt ein chinesisches Zeichen nicht 2 Bytes? „Sanzhi Development Network“ hat eindeutig fünf chinesische Schriftzeichen, wie könnte das Ergebnis also 15 sein?

Der Grund ist folgender: Bei der Berechnung von strlen() wird ein chinesisches UTF-8-Zeichen so behandelt, als hätte es eine Länge von 3. Wie kann die Länge der Zeichenfolge genau berechnet werden, wenn Chinesisch und Englisch gemischt sind? Hier muss eine weitere Funktion mb_strlen() eingeführt werden. Die Verwendung der Funktion mb_strlen() ist fast die gleiche wie strlen(), außer dass es einen zusätzlichen Parameter gibt, der die Zeichensatzkodierung angibt. Der Funktionsprototyp lautet:

int mb_strlen(string string_input, string encode);
Nach dem Login kopieren

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). Daher kann der folgende Code die Länge chinesischer Zeichenfolgen genau berechnen:

<?php 
$str = "三知sunchis开发网"; 
echo strlen($str)."<br>"; //结果:22 
echo mb_strlen($str,"UTF8")."<br>"; //结果:12 
$strlen = (strlen($str)+mb_strlen($str,"UTF8"))/2; 
echo $strlen; //结果:17 
?>
Nach dem Login kopieren

Prinzipielle Analyse: Bei der Berechnung von

strlen() beträgt die Länge der in UTF-8 behandelten chinesischen Zeichen 3 Daher beträgt die Länge von „Sanzhi Sunchis Development Network“ 5×3+7×1=22
Wenn bei der Berechnung von mb_strlen der interne Code als UTF8 ausgewählt wird, wird ein chinesisches Zeichen mit einer Länge von 1 berechnet. also beträgt die Länge des „Sanzhi sunchis Development Network“ 5×1+7×1=12

Der Rest ist ein rein mathematisches Problem, daher werde ich hier nicht auf Details eingehen...

Hinweis: Wenn für mb_strlen ($str,'UTF-8') der zweite Parameter weggelassen wird, wird die interne Kodierung von PHP verwendet. Die interne Kodierung kann über die Funktion mb_internal_encoding() abgerufen werden. Es ist zu beachten, dass mb_strlen keine Kernfunktion von PHP ist. Bevor Sie es 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 ist nicht auskommentiert, sonst liegt ein undefiniertes Funktionsproblem vor.

Weitere PHP-Stringlängenberechnungen – Einführung in die Verwendung der strlen()-Funktion und verwandte Artikel finden Sie auf der chinesischen PHP-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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Apr 06, 2025 am 12:02 AM

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Apr 03, 2025 am 12:04 AM

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Mar 31, 2025 pm 11:54 PM

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Wie debugge ich den CLI -Modus in PhpStorm? Wie debugge ich den CLI -Modus in PhpStorm? Apr 01, 2025 pm 02:57 PM

Wie debugge ich den CLI -Modus in PhpStorm? Bei der Entwicklung mit PHPSTORM müssen wir manchmal den PHP im CLI -Modus (COMS -Zeilenschnittstellen) debuggen ...

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Apr 01, 2025 pm 03:12 PM

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

See all articles