Strings in PHP auf das nächste Wort kürzen
So schneiden Sie einen String am Ende des letzten Wortes vor einer bestimmten Zeichenanzahl ab, PHP bietet mehrere Methoden.
Wortumbruch verwenden Funktion:
Die Zeilenumbruchfunktion unterteilt den Text in mehrere Zeilen mit maximaler Breite und bricht automatisch an Wortgrenzen. Indem Sie nur die erste Zeile verwenden, können Sie den Text auf das nächste Wort kürzen:
$truncated_string = substr($string, 0, strpos(wordwrap($string, $desired_width), "\n"));
Edge Case Handling:
Diese Methode verarbeitet keine kürzeren Texte als die gewünschte Breite. Verwenden Sie dazu Folgendes:
if (strlen($string) > $desired_width) { $string = substr($string, 0, strpos(wordwrap($string, $desired_width), "\n")); }
Token-Trunkierung:
Um potenzielle Probleme mit Zeilenumbrüchen im Text zu beheben, teilt diese Methode den Text in Token (Wörter) auf , Leerzeichen und Zeilenumbrüche) und akkumuliert ihre Längen:
function tokenTruncate($string, $desired_width) { $parts = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE); $length = 0; $last_part = 0; for (; $last_part < count($parts); ++$last_part) { $length += strlen($parts[$last_part]); if ($length > $desired_width) { break; } } return implode(array_slice($parts, 0, $last_part)); }
Diese Methode verarbeitet auch UTF8 Zeichen.
Einheitentests:
class TokenTruncateTest extends PHPUnit_Framework_TestCase { // ... test cases ... }
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie kann ich Strings in PHP auf das nächste Wort kürzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!