1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| function resume($chaine, $longueur_maxi=100, $tronque_maxi=5 ) {
if (strlen($chaine)>$longueur_maxi) {
$c = substr(ltrim($chaine), 0, $longueur_maxi);
preg_match('`.+(?=[,;\.])`s', $c, $out1); // la chaîne raccourcie jusqu'à la dernière ponctuation
preg_match('`.+(?=[ ])`s', $c, $out2); // la chaîne raccourcie jusqu'au dernier espace
// Si la ponctuation trouvée est trop loin du dernier mot on n'en tient pas compte
if ( ( strlen($out2[0]) - strlen($out1[0]) ) < $tronque_maxi) {
$c = $out1[0];
} else {
$c = $out2[0];
}
// Supprime les mots courts en fin de phrase
if (preg_match('`.+(?=(de|du|dans|le|la|a|à)$)`s', $c, $out3)) {$c = $out3[0];};
return $c."...";
} else {
return $chaine;
}
} |
Partager