Aller au contenu

br et rss ne font pas bon ménage ?


nizouille

Sujets conseillés

Hello,

Sur mon site internet pour les enseignants, instituteurs et professeurs, je propose deux flux rss, l'un pour mon forum, l'autre pour les nouvelles ressources pédagogiques envoyées par les utilisateurs.

Cependant, il y a un petit problème. Lorsque j'essaie de valider mon flux rss, via le feed validator par exemple,

j'ai cette erreur qui revient constamment : element type br must be declared

Quelqu'un pourrait vérifier ?

(P.S. : Si quelqu'un sait comment avoir une notification sonore avec rssowl lors d'une nouvelle dépêche, je suis plus que preneur (ou tout type de notification sonore avec un autre agrégateur).

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Hello,

Si je passe mon rss sur l'enseignement au validateur, j'ai cette horrible erreur

http://feedvalidator.org/check.cgi?url=htt...ns.be%2Frss.php

Le br n'est pas content d'être là.

J'ai cru comprendre que je devais utiliser cdata ... mais je n'y arrive pas

$xml .='<description>';

$xml .= $news;

$xml .='</description></item>';

Merci de votre aide.

Lien vers le commentaire
Partager sur d’autres sites

En fait tu ne peux pas inclure du code HTML comme ça dans un fichier RSS. Même si c'est du RSS 2.0 (qui n'est pas la version la plus "propre"), il faut te rendre compte que ce n'est pas du HTML ;)

Solution : enfermer ton contenu dans une balise CDATA afin que le code ne soit pas interprété par le parseur, ou alors encoder en entités.

En RSS 2.0 il me semble qu'il y a un truc inutilement compliqué à faire mais je ne sais plus exactement lequel :unsure:

Pour inclure le contenu dans une zone CDATA, il faut l'enfermer entre <![CDATA[ et ]]> Pour encoder il faut utiliser la fonction php htmlspecialchars() comme l'a dit lupucide ;)

Ensuite il faut je crois renseigner la technique utilisée (c'est là que c'est inutilement compliqué) dans le <description>. Ou alors je confond avec une autre version de RSS :unsure:

Lien vers le commentaire
Partager sur d’autres sites

j'avais eu le meme probleme il ya quelques temps,

et voici comment je m'en suis sorti :

      $montexte = nl2br(strip_tags($montexte,"<a>,<i>"));
     $montexte = html_entity_decode($montexte);

     $montexte = "<![CDATA[".$montexte."]]>";

en entrée, $montexte est du HTML, j'enleve tout les tags html sauf lien et italique, je mets des <br> a la place des retour chariots, je gère les entites html et j'encadre le tout par le CDATA qui va bien...

oui oui, xml c'est simple il n'y a que des données :rolleyes:

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...