Multibyte-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:
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!