Version complète: sur le forum Webmaster Hub : Flux RSS récalcitrant
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > XML et ses dialectes
Cleden
Bonjour,

Je créé des flux rss via php, l'un d'entre eux contient les derniers évènements se déroulant dans ma communauté de communes, le voici: http://www.cap-sizun.com/rss.php?sujet=age...1&nb_car=88

Le problème est qu'il ne veut pas s'afficher sous firefox, il a quelque chose qui bloque. Il s'affiche lorsque l'on fixe le nb_items à 6 mais disparait à nouveau lorsque que l'on choisi un nb_car supérieur à 88 (le nombre de caractères dans la description).

j'ai retourné le problème dans tous les sens, supprimé tous les accents ou caractères spéciaux mais rien n'y fait, il y a toujours quelque chose qui bloque.

Feed validator me raconte que l'élément description n'a rien à faire à cet endroit (au niveau du 6ème item), je ne vois vraiment pas ce qui n'est pas correct.

Si vous avez une idée de la provenance du problème, je vous en serai reconnaissant wink.gif
captain_torche
Ça bloque après le 39ème caractère pour moi, sous IE et Firefox.
C'est sans doute le tiret après "Kerros" qui doit être mal encodé. Essaye de le supprimer, pour voir ?
Cleden
Je ne vois pas de tiret après Kerros, peux tu m'en dire plus ? Effectivement, le flux s'affiche correctement jusqu'au caractère 39 mais je ne parviens pas à visualiser ce qui bloque blushing.gif

D'autre part, existe-il une fonction php toute faite qui retirerait/remplacerait tous les caractères incompatibles avec le format RSS ?
captain_torche
Autant pour moi, j'ai confondu avec Perros-Guirec ... blushing.gif
Quel caractère as-tu après le "s" de Kerros ?
Cleden
Après Kerros, j'avais un "à" que j'ai modifié en "a" pour essayer et ça ne fonctionne toujours pas.

Rrrr, ce flux RSS commence à m'exaspérer, je ne comprend vraiment pas d'où peut venir le problème IMSTP1.gif
captain_torche
J'imagine qu'entre le Kerros et le "à" tu as un espace ?
Essaye de le supprimer pour voir.
Tu pourrais également donner le code de ta fonction qui coupe les mots ?
Cleden
Merci pour ton aide et ta patience, j'ai supprimé l'espace après Kerros et ça ne fonctionne toujours pas.

Ma fonction qui coupe les mots est une bête substr()
CODE
if (strlen($msg_data['description']) > $_GET['nb_car']){
    $xml .="\t".'<description><![CDATA['.mef_rss(substr($msg_data['description'], 0, $_GET['nb_car'])).'&nbsp;...]]></description>'."\n";}
else {
    $xml .="\t".'<description><![CDATA['.mef_rss($msg_data['description']).']]><description>'."\n";}

Et ma fonction mef_rss()
CODE
    function mef_rss($description)
    {
    $description = strip_tags($description);
    $description = str_replace("&",'&amp;',$description);
    $description = str_replace("<","&lt;",$description);
    $description = str_replace(">","&gt;",$description);
    $description = str_replace("€","Euros",$description);
    $description = str_replace("\n","",$description);
    $description = str_replace("\r","",$description);
    $description = stripslashes($description);
    $description = trim($description);
    return $description;
    }


Désolé pour les puristes, il y a des choses qui servent probablement à rien mais je compte les supprimer au fur et à mesure lorsque mon flux fonctionnera.
captain_torche
Aaarhh ! C'était tout bête !
Les éléments 6 à 9 ont une mauvaise balise "description" : elle n'est pas fermée; il manque l'antislash.
Cleden
Quel honte ! blush.gif

Et maintenant, que dois-je faire ? Emigrer dans la Creuse et me planquer jusqu'à la fin de mes jours ? wink.gif

Plus sérieusement, merci de t'être penché sur ce problème et d'avoir trouvé la faille, ça aurait pu me prendre des jours...

Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.