Comment couper une phrase sans couper un mot en PHP ?

Réponses rédigées par Antoine
Dernière mise à jour : 2018-08-27 17:11:15
Thèmes : php - script - webmaster
Question

Comment faire pour couper phrase sans couper un mot, en PHP ?

Réponse

Cette fonction PHP permet de tronquer une chaine de caractères, une phrase par exemple, sans couper un mot.

Les trois arguments passées dans le fonction correspondent à :

  • $string : la chaine à tronquer.
  • $limit : le nombre de mot après lequel on tronque.
  • $fin : l’éventuel chaine à placer à la fin de la chaine tronquée, dans l'exemple des points de suspension "...".

Voici le code PHP pour couper une phrase sans couper un mot :

function tronquer_chaine_mot($string, $limit = 5, $fin = '...')
{
preg_match('/^\s*+(?:\S++\s*+){1,' .$limit. '}/u', $string, $matches);
if (!isset($matches[0]) || strlen($string) === strlen($matches[0])) {
	return $string;
       }
return rtrim($matches[0]).$fin;
}
echo tronquer_chaine_mot("un deux trois quatre cinq six sept ");

La fonction retourne dans cet exemple "un deux trois quatre cinq...".

La fonction suivante tronque une chaine de caractères sans se soucier de couper ou non un mot, elle fonctionne selon le nombre de caractères défini par la variable $limit.

function tronquer_chaine_caracteres($string, $limit = 100, $fin= '...')
{
if (mb_strlen($string) <= $limit) {
	return $string;
       }
return rtrim(mb_substr($string, 0, $limit, 'UTF-8')) . $fin;
}