Maison >développement back-end >tutoriel php >Comment puis-je tronquer des chaînes en PHP au mot le plus proche ?
Tronquer les chaînes en PHP au mot le plus proche
Pour recadrer une chaîne à la fin du dernier mot avant un nombre de caractères spécifié, PHP propose plusieurs méthodes.
Utilisation de la fonction wordwrap :
Le La fonction wordwrap divise le texte en plusieurs lignes avec une largeur maximale, rompant automatiquement les limites des mots. En prenant uniquement la première ligne, vous pouvez tronquer le texte au mot le plus proche :
$truncated_string = substr($string, 0, strpos(wordwrap($string, $desired_width), "\n"));
Edge Case Handling :
Cette méthode ne gère pas les textes plus courts que la largeur désirée. Pour cela, utilisez ce qui suit :
if (strlen($string) > $desired_width) { $string = substr($string, 0, strpos(wordwrap($string, $desired_width), "\n")); }
Troncation des jetons :
Pour résoudre les problèmes potentiels liés aux sauts de ligne dans le texte, cette méthode divise le texte en jetons (mots , espaces et nouvelles lignes) et accumule leurs longueurs :
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)); }
Cette méthode gère également UTF8 caractères.
Tests unitaires :
class TokenTruncateTest extends PHPUnit_Framework_TestCase { // ... test cases ... }
Remarques supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!