Aller au contenu

Comment créer un flux RSS ?


Las

Sujets conseillés

Salut,

J'ai un problème pour afficher les dérniers articles sur un flux RSS.

Voici mon code :


<?php

include ('../inc/config.php');

$query = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 20") or die(mysql-error());

// on selectionne les champs qui seront présents dans le RSS

// on trie en ordre anté-chronologique, pour avoir l'article le plus récent au début

// on décide de limiter à 20 le nombre de billets affichés



while ($row = mysql_fetch_assoc($query)) { $items[] = $row; }

// On a les infos nécessaires, construisons le flux :

header('Content-Type: text/xml; charset="UTF-8"', true); // et on spécifie UTF-8 pour une compatibilité améliorée
echo '<?xml version="1.0" encoding="UTF-8" ?>'."\n";
echo '<rss version="2.0">

<channel>

<generator>Moscoweb.com - Un site libre...</generator>

<title>Derniers articles sur Moscoweb !</title>

<link>http://www.moscoweb.com</link>

<description>Articles sur l\'informatique open source, la politique et Internet</description>

<language>fr</language>

<ttl>60</ttl>'."\n\n";

// on va maintenant envoyer chaque item

foreach($items as $item)

{
echo
'<item>

<title>'.utf8_encode($item['title']).'</title>

<link>http://moscoweb.com/index.php?act=view&id='.$item['id'].'</link>

<description>'.utf8_encode($item['content']).'</description>

<pubDate>'.$item['date'].'</pubDate>

<category>'.$item['categorie'].'</category>

</item>';

/* au cas ou vos contenus ne sont pas en UTF-8, il est bien sur indispensable de les convertir, par exemple :
<title>'.utf8_encode($item['title']).'</title>
<description>'.utf8_encode($item['contenu']).'</description>
*/

}
// et on termine le fichier

echo '</channel>' . "\n" . '</rss>' . "\n";

?>

Lien vers le commentaire
Partager sur d’autres sites

Je ne suis pas rentre en detail dans ton code (pas le temps) mais si l'affichage d'un flux RSS s'interrompe au milieu, c'est generalement qu'il y a une erreur de syntaxe sur le premier element non afficher.

Donc la solution est d'afficher le RSS, de noter le dernier element afficher, de regarder le source de l'item suivant, et si possible de valide le flux XML.

Dans mon cas, a chaque fois que ca a merde, c'est parce qu'il y avait des caracteres non supporte dans le code XML, surtout des caracteres en HTML entity.

A+

Lolo

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...