"' éèàùò TEST // on traduit le HTML $chaine = un_htmlentities($chaine); // chaine contient donc litteralement : TEST <> "' éèàùò TEST // on peut donc la recouper sans risquer de couper un code HTML // la recoupe s'effectue si le texte fait plus de 150 caractères if(strlen($chaine)>=150) { $chaine = substr($chaine,0,150); // recoupe du texte // les 2 lignes suivantes servent à éliminer le mot qui a été tronqué lors de la précédente recoupe $espace = strrpos($chaine,' '); // on cherche la position du dernier espace $texte = substr($chaine,0,$espace).' ...'; // on garde seulement ce qui est avant cet espace et on ajoute des points de suspensions } // fin de la recoupe // reconversion en HTML (pour la sécurité) $chaine = htmlentities($chaine, ENT_QUOTES); // l'attribut ENT_QUOTES est là pour signifier que les apostrophes doivent également être traduites echo $chaine; ///////////////////////////////////////////////////////////////////////////////// /////////////////////// declaration de la fonction un_htmlentities() ///////////////////////////////////////////////////////////////////////////////// function un_htmlentities($string) { $trans_tbl = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES); // on récupère un tableau contenant les correspondances caractères => HTML //correction de bug : le caractère ' doit être encoder en ' et non en ' !! $trans_tbl["'"] = '''; // pour voir le contenu du tableau, décommenter la ligne suivante : // print_r($trans_tbl); $trans_tbl = array_flip($trans_tbl); // on inverse le tableau : les valeurs deviennent des clés et inversement return strtr($string, $trans_tbl); // chaque code HTML est remplacé par son équivalent } ?>