Page 1 sur 2

Comment interpréter du HTML?

Posté : 27 mars 2012, 23:01
par Sebastien
Bonjour à tous,

Je me permets de m'en remettre à la communauté française PHP car je galère depuis... 3 ans sur un truc bizarre. J'ai un site utilisant un "composant" javascript me permettant de saisir du texte et de le formater "à la word" (je ne peux même pas vous le montrer il est derrière une authentification...). En revanche je peux vous donner son nom : FCKEditor (http://ckeditor.com/download). ATTENTION : il s'agit bien de FCKEditor (en bas de page au 27 mars 2012) net non CKEditor !)
Cette ancienne version gratuite (nous n'avons pas les moyen d'acheter une version payante) ne permet que renvoyer le texte que l'utilisateur saisi, qu'en HTML encodé avec des eperluettes (et commercial) et terminant par un point-virgule pour les entités html (par erxemple :

Code : Tout sélectionner

é -> é
)
Je souhaite tout simplement faire convertir les entité HTML en simple texte (les interpréter en quelque sorte) en UTF-8 ou autre mais pas en HTML (l'idéal étant l'UTF-8 quand même !)
Etant donnée le nombre non négligeables de caractères encodés HTML (c'est comme ca que j'appelle les &...; car je ne sais pas le nom que ça porte), l'utilisation conseillée par bon nombre de personnes sur les forums, de faire une recherche puis un remplacement de ces entités, ne me satisfait aucunement, je pense que vous l'aurez compris. (on n'est pas sûr de tout prendre)
Je me rends à la communauté pour savoir si quelqu'un s'est déjà heurté à ce problème et comment l'a-t-il résolu.

Avec tous mes remerciements

SL

Re: Comment interpréter du HTML?

Posté : 28 mars 2012, 07:18
par xTG
Regardes la fonction html_entity_decode(). :)

Re: Comment interpréter du HTML?

Posté : 28 mars 2012, 09:21
par Berzemus
Regardes la fonction html_entity_decode(). :)
Comme le dit xTG sans le dire, je ne sais pas sur quels forums tu as été, mais le problème est somme toute fort banal.

Re: Comment interpréter du HTML?

Posté : 28 mars 2012, 17:03
par sirakawa
Tellement banal que, si le texte comprend un simple <b>....</b>, celui-ci survit à html_entity_decode.
Heureusement qu'il ya strip_tags pour compléter...

Re: Comment interpréter du HTML?

Posté : 29 mars 2012, 06:18
par Sebastien
Bonjour

si je pose la question c est que toutes les fonctions que vous avez cité ci dessus ne repondent abslument pas a mon probleme. ...

Re: Comment interpréter du HTML?

Posté : 29 mars 2012, 06:40
par Sebastien
bonjour, désolé pour ma réponse assez courte et qui peu paraitre sèche mais depuis mon telephone portable, je restreints les mots....

J'aurais d^vous préciser où j'en étais et j'ai complètement pas pensé à le faire hier....

voila ce que j'ai déjà trouvé mais incomplet :

Code : Tout sélectionner

<?PHP $str = ' J\'ai "sorti" le <strong>chien</strong> tout à l heure'; $a = htmlentities($str); $b = html_entity_decode($a); $b = preg_replace('@<[^>]*?>.*?>@si', '', $str); echo $b."<br>"; ?>
et voilà ce que l'obtiens : J'ai "sorti" le tout � l heure (en UTF-8 ou en ISO 8859, le à ne passe pas !)

pour le reste ca m'a pas l'air mauvais...

Re: Comment interpréter du HTML?

Posté : 29 mars 2012, 09:44
par xTG
Fichier enregistré avec quel encodage ?
php.ini configuré pour quel encodage ?

Re: Comment interpréter du HTML?

Posté : 29 mars 2012, 10:55
par Berzemus
Ah ben oui, et pis sous quel encodage la page est-elle interprétée par le navigateur ?

Re: Comment interpréter du HTML?

Posté : 29 mars 2012, 17:59
par sirakawa
quant à moi avec strip_tags
$cible = strip_tags ($str);
j'obtiens:
J'ai "sorti" le chien tout à l heure (avec chien en gras)
devient
J'ai "sorti" le chien tout à l heure (avec chien en normal)

Re: Comment interpréter du HTML?

Posté : 30 mars 2012, 22:33
par Sebastien
Fichier enregistré avec quel encodage ?
php.ini configuré pour quel encodage ?
Honnêtement j'ai pas regardé mais si c'est juste un probleme d'encodage c'est pas grand choses....

Re: Comment interpréter du HTML?

Posté : 30 mars 2012, 22:48
par Sebastien
Fichier enregistré avec quel encodage ?
php.ini configuré pour quel encodage ?
Le projet Netbeans est en UTF-8

Re: Comment interpréter du HTML?

Posté : 30 mars 2012, 23:24
par Sebastien
Apres lecture de vos aides ett travail, voici le code que j'ai :

Code : Tout sélectionner

$str = "<img src='images/stylo.png' border=0><br>Descriptif</td><td width='95%' colspan=5><p>&nbsp;La R&eacute;gion Lorraine est partenaire de l&rsquo;exposition &laquo;&nbsp;L&rsquo;Art du Geste, Menuiserie en si&egrave;ges&nbsp;&raquo; qui se tiendra du 24 mars au 21 avril 2012 au Trait d&rsquo;Union &ndash; Espace Culturel Fran&ccedil;ois Mitterand &agrave; Neufch&acirc;teau.</p> <p>L&rsquo;exposition se compose de photographies de Pascal Bodez r&eacute;alis&eacute;es dans cinq entreprises&nbsp;du bassin vosgien labellis&eacute;es Entreprise du Patrimoine Vivants (EPV), une distinction nationale r&eacute;compensant les entreprises aux savoir-faire d&rsquo;excellence. <br /> V&eacute;ritable reflet du savoir-faire r&eacute;gionale en mati&egrave;re de menuiserie en si&egrave;ge, le travail photographique est compl&eacute;t&eacute; par la pr&eacute;sence de v&eacute;ritables pi&egrave;ces de ma&icirc;tres de ces entreprises prestigieuses photographi&eacute;es que sont l&rsquo;Atelier Henryot & Pozzoli, Chemin Sarl, la maison Delaroux, la manufacture Henryot & Cie et la soci&eacute;t&eacute;&nbsp;Laval S.A.</p> <p>Le vernissage de l&rsquo;exposition aura lieu le samedi 24 mars 2012 &agrave; 16h &agrave; l&rsquo;occasion de la remise du label &lsquo;Ville des m&eacute;tiers d&rsquo;art&rsquo; par la d&eacute;l&eacute;gation nationale des villes d&rsquo;arts aux communes de Neufch&acirc;teau et Liffol le Grand.</p> <p>A cette occasion, trois Meilleurs Ouvriers de France (MOF) lorrains seront pr&eacute;sents&nbsp;: Robert Bastien, &eacute;b&eacute;niste d&rsquo;art, Thierry Chopin, sculpteur sur bois et Jean-Pierre Lengrand, menuisier en si&egrave;ge. Les &eacute;l&egrave;ves du lyc&eacute;e du bois de Neufch&acirc;teau r&eacute;aliseront &eacute;galement des d&eacute;monstrations tout au long des deux derniers weekends de mars.</p></td></tr><tr><td width='5%' class='legende'><img src='images/homme.png' border=0><br>Organisateur</td><td width='95%' colspan=5>Région Lorraine</td></tr><tr><td width='5%' class='legende'><img src='images/web.png' border=0><br>Site web</td><td width='95%' colspan=5><i><b><a href='' target='_blank'></a></i></b></td></tr><tr><td width='5%' class='legende'><img src='images/homme_rouge.png' border=0><br>Publié par</td><td width=95% colspan=5><i><b> Aujourdhuianancy.com</i></b></td></tr></table></td> </tr> </table> </td></tr> <tr class='trCopyright'><td> <table width='100%'><tr> <td align='left'>, 2009. Site h&eacute;berg&eacute; chez <a href='notre_hebergeur.php5'>Notre hebergeur</td>"; //Si le code contient des double cotes, ca fout le bronx. Je les remplace par des simples cotes str_replace('"', "'", $str); $a = htmlentities($str); $b = html_entity_decode($a); $b = preg_replace('@<[^>]*?>.*?>@si', '', $str); echo strip_tags(html_entity_decode($b))."<br>";


et la réponse, l'interprétation :

Code : Tout sélectionner

Descriptif Véritable reflet du savoir-faire régionale en matière de menuiserie en siège, le travail photographique est complété par la présence de véritables pièces de maîtres de ces entreprises prestigieuses photographiées que sont l&rsquo;Atelier Henryot & Pozzoli, Chemin Sarl, la maison Delaroux, la manufacture Henryot & Cie et la société Laval S.A.Le vernissage de l&rsquo;exposition aura lieu le samedi 24 mars 2012 à 16h à l&rsquo;occasion de la remise du label &lsquo;Ville des métiers d&rsquo;art&rsquo; par la délégation nationale des villes d&rsquo;arts aux communes de Neufchâteau et Liffol le Grand.A cette occasion, trois Meilleurs Ouvriers de France (MOF) lorrains seront présents : Robert Bastien, ébéniste d&rsquo;art, Thierry Chopin, sculpteur sur bois et Jean-Pierre Lengrand, menuisier en siège. Les élèves du lycée du bois de Neufchâteau réaliseront également des démonstrations tout au long des deux derniers weekends de mars. Aujourdhuianancy, 2009. Site hébergé chez
Désormais, auriez vous des idées pour que TOUTES les entités soient interprétées ?

Merci a vous tous

Re: Comment interpréter du HTML?

Posté : 30 mars 2012, 23:27
par Sebastien
J'ai oublié de préciser : en regardant de pres, il reste des

Code : Tout sélectionner

&eacute;
et autres

Code : Tout sélectionner

&rsquo;
Si vous saviez comment "interpréter" ces code pour les avoir en UTF-88, ca m'interesse.....

Re: Comment interpréter du HTML?

Posté : 31 mars 2012, 08:49
par Berzemus
Juste pour tester, tu pourrais nous placer quelque part la page HTML entière telle que générée par le code ? J'aimerais juste vérifier que l'encodage qu'elle renseigne (par meta tag) correspond bien à celui qui est utilisé.

Re: Comment interpréter du HTML?

Posté : 01 avr. 2012, 12:01
par sirakawa
En définitive, ce que tu sembles vouloir, c'est un affichage correct à l'écran.
Il faudrait pour cela que le texte initial soit codé de façon cohérente:
Région et de publié : par exemple ont mal leur place dans un texte entièrement codé &machin;
Deuxième point :
Si tu peux prévoir les textes, Bluefish fait d'excellentes conversions (et surtout réversibles)

str_replace('"', "'", $str); // pourquoi pas
$a = htmlentities($str); // certes, mais ça ne vient pas à bout de Région et de publié par
$b = html_entity_decode($a); // impeccable chez moi à l'écran


$b = preg_replace('@<[^>]*?>.*?>@si', '', $str); // tu opères sur la chaîne initiale


echo strip_tags(html_entity_decode($b))."<br>"; // en se mettant en ISO-8859-??, ça fonctionne...

En revanche, le texte, dont l'auteur se cache sous un pudique anonymat, est farci de fautes d'orthographe et de grammaire élémentaire:
Patrimoine Vivant<!--s retiré-->
<!-- article retiré, car l'apposition ne prend pas l'article en français une-->
distinction nationale
savoir-faire r&eacute;gional<!--e retiré--> en mati&egrave;re de menuiserie
en si&egrave;ges <!-- s ajouté -->,
<!-- de ces simplifié--> des entreprises prestigieuses
photographi&eacute;es, <!-- inutile que sont-->
et, quelque part, a pour à.
J em'autorise cette remarque car, si c'était une annonce pourune manifestation anti-culturelle, on comprendrait mieux que l'image qu'on fournit de la collectivité soit sous une forme non-standard.