236-image1-fr1237827101.jpg

PHP : couper une chaine de caracteres au mot près !

Dans la famille "chaine de caractères", je cherche une fonction PHP qui me permet de couper cette chaine… mais sans couper les mots svp !
 
Utilisée souvent dans des listes de résultats (exemple : une liste d’actualités, une liste de commentaires…) afin de proposer des blocs de longueurs pas trop inégales, mais surtout ayant un sens !
 
 
 
 
La fonction couperChaine() prends 2 paramètres en argument :
 
  1. $chaine : c’est la chaine de caractères à découper
  2. $nbrMotMax : c’est le nombre de mots maximum que la chaîne ne doit pas dépasser (sous peine d’être tronquée) 
 
Exemple : 
 
J’ai une chaine du type "STUDIO VITAMINE est une agence web formidable située à La Rochelle, au bord de la mer !".
Je souhaite couper cette chaîne au niveau de 6 mots.
 
<?
$chaine = "STUDIO VITAMINE est une agence web formidable située à La Rochelle, au bord de la mer !";
$chaineCouper = couperChaine($chaine, 6);
echo $chaineCouper."[…]";
?>
  
Résultat : 
 
STUDIO VITAMINE est une agence web […]
 
Voici le code PHP de la fonction : 
 
<?
// —————————————–
// Coupe une chaine en fonction du nombre de mots.
// —————————————–
function couperChaine($chaine, $nbrMotMax){
$chaineNouvelle = "";
$t_chaineNouvelle = explode(" ",$chaine);
foreach($t_chaineNouvelle as $cle => $mot){
if($cle < $nbrMotMax){
$chaineNouvelle .= $mot." ";
}
}
return $chaineNouvelle;
}
?>
 

Auteur : Fabien Branchut

Fabien Branchut
Concepteur de site web depuis 2001 : développement web et SEO. Co-fondateur et directeur web de l'agence Studio Vitamine depuis 2008 : conception e-commerce, chef de projet, stratégie SEO. Site de Fabien Branchut.

Commentaires Facebook

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *