


Wie kann ich Multibyte-Strings in PHP sicher abschneiden und gleichzeitig Wortgrenzen beibehalten?
Dec 04, 2024 am 05:41 AMMultibyte-Strings in PHP abschneiden
In PHP kann das Abschneiden von Multibyte-Strings eine komplexe Aufgabe sein. Dieser Artikel befasst sich mit der Herausforderung, solche Zeichenfolgen auf eine bestimmte Anzahl von Zeichen zu kürzen, wobei sowohl die Multibyte-Zeichenkodierung als auch Wortgrenzen berücksichtigt werden.
Um dies zu erreichen, besteht ein Ansatz darin, die in PHP integrierte Funktion mb_strimwidth() zu verwenden, die dies ermöglicht zum Abschneiden von Zeichenfolgen mit angegebener Breite. Diese Funktion berücksichtigt jedoch keine Wortgrenzen.
Benutzerdefinierte Implementierung für Trunkierung
Eine benutzerdefinierte Implementierung kann erstellt werden, um sowohl Multibyte-Zeichenkodierung als auch Wortgrenzen zu verarbeiten:
- Trunkierungslänge berechnen: Subtrahieren Sie die Länge der Abschlusszeichenfolge von der maximalen Anzahl von Zu kürzende Zeichen.
- Stringlänge validieren:Überprüfen Sie, ob die Eingabezeichenfolge länger als die berechnete Kürzungslänge ist; Andernfalls geben Sie es unverändert zurück.
- Wortgrenze suchen: Verwenden Sie mb_strrpos(), um nach dem letzten Leerzeichen in der Zeichenfolge unterhalb der Kürzungslänge zu suchen.
- Zeichenfolge ausschneiden: Wenn eine Wortgrenze gefunden wird, kürzen Sie die Zeichenfolge an dieser Stelle; andernfalls mit der berechneten Kürzungslänge abschneiden.
- Abschlusszeichen anhängen: Die Abschlusszeichenfolge zur abgeschnittenen Zeichenfolge hinzufügen.
- Abgeschnittene Zeichenfolge zurückgeben: Ausgabe das abgeschnittene und angehängte string.
Beispielverwendung:
function truncate($string, $chars = 50, $terminator = ' …') { // Calculate truncation length $trunc_len = $chars - strlen($terminator); // Validate string length if (strlen($string) <= $trunc_len) { return $string; } // Find word boundary $space_pos = mb_strrpos($string, ' ', -$trunc_len); // Cut string if ($space_pos !== false) { $truncated_string = mb_substr($string, 0, $space_pos); } else { $truncated_string = mb_strimwidth($string, 0, $trunc_len); } // Append terminator return $truncated_string . $terminator; }
Diese Funktion kann zum Abschneiden von Multibyte-Strings unter Berücksichtigung sowohl der Zeichenkodierung als auch der Wortgrenzen verwendet werden. Es bietet eine unkomplizierte und robuste Lösung für diese häufige PHP-Aufgabe.
Das obige ist der detaillierte Inhalt vonWie kann ich Multibyte-Strings in PHP sicher abschneiden und gleichzeitig Wortgrenzen beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

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

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon
