La fonction PHP suivante retourne les $word_limit premiers mots de $string.
Dans le cas où le nombre total de mots de $string est supérieur à $word_limit, je rajoute [lire la suite] en fin de la chaine de retour de fonction, avec un lien passé en dernier paramètre de la fonction.
Réduction d’une chaîne à un nombre de mots donné
exemple 1 avec implode / explode :
function Reduire_Chaine($string, $word_limit, $lien)
{
$string=strip_tags($string);
$words = explode(' ', $string, ($word_limit + 1));
if(count($words) > $word_limit){
array_pop($words);$fin=' <a href="'.$lien.'">[lire la suite]</a>';
}else
$fin='';
return implode(' ', $words).$fin;
}
exemple 2 avec preg_split :
function Reduire_Chaine_2($texte, $nb_mots = 10) {
$mots = preg_split('/\s+/', trim($texte));
if (count($mots) <= $nb_mots) {
return $texte; }
return implode(' ', array_slice($mots, 0, $nb_mots)) . '...';
}
Laisser un commentaire
Participez-vous à la discussion?N'hésitez pas à contribuer!