problème d'affichage RSS 2.0 depuis source html

problème d'affichage RSS 2.0 depuis source html - XML/XSL - Programmation

Marsh Posté le 06-09-2008 à 18:19:47    

Bonjour,
 
Je suis en train de mettre en place un flux rss pour mon site, je m'appuie sur http://fr.wikipedia.org/wiki/RSS_(format) pour le format.
 
Je dois convertir les informations enregistrée au format html en texte brut.
 
Voici mon fichier test :  
 
http://www.forum-vista.net/scripts/rss-maj-opt.php
 
Avec firefox j'ai un affichage mais avec des caractère non interpreté. il s'agit des accents.
 
Lorsque j'affiche le code de la page l'affichage est correcte.
 
le voici :
 

Code :
  1. <rss version="2.0">
  2.     <channel>
  3.         <title>Forum-vista.net</title>
  4.         <description>Les mises a jours de sécurité optionnelles de Windows Vista</description>
  5.         <lastBuildDate>Sat, 6 Sep 2008 18:19:54 CEST 2008 -0700</lastBuildDate>
  6.         <link>http://www.forum-vista.net</link>
  7.   <item>
  8.    <title>test mims : ceci est un test</title>
  9.    <description>test eéééé</description>
  10.    <pubDate>00-00-0000 00:00:00 -0700</pubDate>
  11.    <link>http://www.forum-vista.net/securite/maj-vista-5.htm</link>
  12.   </item>
  13. </channel>
  14. </rss>


 
quand je test ce code dans un fichier en dur cela fonctionne. mais pas lorsque je le génère en dynamique ... une idée ?
 
 
Voici mon code :  
 
<?
require ("Bdd.class.php" );
$bdd = new Bdd("config.inc.php" );
$bdd->connect();
 
 
 
echo"
<rss version=\"2.0\">
    <channel>
        <title>Forum-vista.net</title>
        <description>Les mises a jours de sécurité optionnelles de Windows Vista</description>
        <lastBuildDate>".date("D, j M Y G:i:s T Y" )." -0700</lastBuildDate>
        <link>http://www.forum-vista.net</link>";
   
  $req= "SELECT * FROM secucenter where visible = '1' and notems = '1' order by id desc";
  $bdd->setQuery($req);
  $res = $bdd->executeQuery();
   
   
  for($i=0;$i<sizeof($res);$i++){
   
   echo"
   <item>
    <title>".stripslashes($res[$i][1])." : ".stripslashes($res[$i][2])."</title>
    <description>".strip_tags(html_entity_decode(stripslashes($res[$i][4])))."</description>
    <pubDate>".affdate($res[$i][3], 'fr')." 00:00:00 -0700</pubDate>
    <link>http://www.forum-vista.net/securite/maj-vista-".$res[$i][0].".htm</link>
   </item>
   ";
  }
     
 echo"
 </channel>
</rss>
";
?>
 
Merci de votre aide ... Je ne comprends plus grand chose...

Reply

Marsh Posté le 06-09-2008 à 18:19:47   

Reply

Marsh Posté le 09-09-2008 à 11:04:50    

Apres avoir mis au point une petite fonction pour traiter les caractères spéciaux j'obvtien un code aux normes  
 
La voici :
 

Code :
  1. function caracterespeciaux($chaine) {
  2. $chaineok = str_replace( chr(34),"", $chaine);
  3. $chaineok = str_replace( "&amp;"," and ", $chaineok);
  4. $chaineok = str_replace( "&","", $chaineok);
  5. trim($chaineok);
  6. return $chaineok;
  7. }


 
Je l'applique pour le titre et la description.


Message édité par mims1664 le 09-09-2008 à 11:05:13

---------------
la vie à le goût qu'on lui donne !! Vive le photo numérique et le tirage photo
Reply

Marsh Posté le 09-09-2008 à 11:13:38    

Et apprendre à encoder correctement ça te serait pas venu à l'idée [:petrus dei]
 
Also, http://feedvalidator.org/check.cgi [...] aj-opt.php [:petrus75]


Message édité par masklinn le 09-09-2008 à 11:14:52

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 09-09-2008 à 14:54:48    

hé ho dans ce cas c'est pas que j'encode mal c'est que je respecte pas les standards !! lol
 
bon je vais voir tout ca !
 
merci pour l'astuce du valiodator ! j'y avais pas pensé !


---------------
la vie à le goût qu'on lui donne !! Vive le photo numérique et le tirage photo
Reply

Marsh Posté le 09-09-2008 à 14:57:31    

mims1664 a écrit :

hé ho dans ce cas c'est pas que j'encode mal c'est que je respecte pas les standards !! lol


Un peu des deux, ton feed n'est pas correct et tu ne précises ni son type MIME ni son encodage dans les headers HTTP que tu envoies.

mims1664 a écrit :

merci pour l'astuce du valiodator ! j'y avais pas pensé !


Le feedvalidator marche vraiment bien en plus, ça serait dommage de s'en priver :jap:


Message édité par masklinn le 09-09-2008 à 14:58:05

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed