Strings mit UTF-8-Zeichen abschneiden
Problem:
Multibyte-Strings werden auf eine angegebene Zeichenbeschränkung abgeschnitten Während die Beibehaltung von Wortgrenzen in PHP eine Herausforderung sein kann. Bei diesem Problem muss diese Funktionalität mit einer benutzerdefinierten Methode namens truncate() erreicht werden, die sich konsistent mit Multibyte-Zeichen verhalten sollte.
Schritte zur Lösung:
Lösung mit mb_strimwidth():
PHP stellt die Funktion mb_strimwidth() zur Verfügung, die das Abschneiden von Multibyte-Strings verarbeiten kann. Diese Funktion unterliegt jedoch keinen Wortgrenzen. Der folgende Codeausschnitt demonstriert seine Verwendung:
public function truncate($string, $chars = 50, $terminator = ' …') { $maxChars = $chars - strlen($terminator); if (mb_strlen($string) <= $maxChars) { return $string; } $lastWhitespace = mb_strrpos(mb_substr($string, 0, $maxChars), ' '); if ($lastWhitespace !== false) { return mb_substr($string, 0, $lastWhitespace) . $terminator; } else { return mb_substr($string, 0, $maxChars) . $terminator; } }
Das obige ist der detaillierte Inhalt vonWie schneide ich UTF-8-Zeichenfolgen in PHP sicher ab und behalte dabei die Wortgrenzen bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!