Bonjour à tous,
Je souhaite faire une fonction pour tronquer des textes.
J'ai créé une fonction toute simple, mais je me suis aperçu que mes textes étant encodé, lorsqu'elle tronquait, il pouvait arriver que cela tronque au milieu d'un code html.
Par exemple "hôtel", pourrait être tronqué en "h&oc".
J'ai voulu donc ajouter un code, en convertissant avant de tronquer, et en reconvertissant ensuite pour l'affichage, mais je ne m'en sors pas.
Si le dernier caractères restant après tronquage est un caractère spécial, lorsque je ré-encode, alors il me renvoie une chaine vide !
Voilà mon code actuel :
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function truncate($text, $length) { $text=html_entity_decode($text,ENT_QUOTES,"UTF-8"); $trunc = (strlen($text)>$length)?true:false; //si $trunc = taille du texte > $length (s'il y a au moins $length caractères), $trunc = true sinon $trunc =false if($trunc) //si $trunc = true { $text=substr($text, 0, $length); return htmlentities($text,ENT_QUOTES,"UTF-8").'...'; } else { return htmlentities($text,ENT_QUOTES,"UTF-8"); } }
P.






Répondre avec citation



Partager