OVH Cloud OVH Cloud

RSS en PHP

1 réponse
Avatar
Yannick
bonjour

je suis en train de réaliser un flux RSS en PHP.

Je modifie l'entête HTTP pour envoyer l'info :
header("Content-type: application/rss+xml");
header('Content-Disposition: attachment; filename="test.xml"');

quand je suis sur mon serveur en local, il n'y a pas de soucis,
le fichier est bien transmis et je peux le lire et l'enregistrer
sans problème sur mon poste. Par contre, dès que je fais l'installation
en ligne, le fichier 'semble' bien récupéré, par contre le navigateur
me met un message d'erreur comme quoi le fichier n'existe pas dans
mes fichiers temporaires internet. Est-ce que quelqu'un a une idée
du problème ? est-ce que le fait de changer le nom du fichier transmis
au nivagateur au travers de l'entête HTTP, entraine une configuration
différente au niveau du serveur (php.ini, htttpd.conf ....) ?????


merci d'avance pour votre aide

Yannick

--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net

1 réponse

Avatar
flconseil
Voilà un bout de programme que j'ai ecrit il y a quelques mois et qui
marchait tres bien. Je ne te mets pas tout le code car l'URL de requete
contient des options en fonction des rubriques qui interessent
l'utilisateur, donc c'est un peu lourd :

Au debut :

header("Content-type: text/xml");

Puis un bloc de la forme :

echo '<' . "?xml version="1.0" encoding="iso-8859-1" ?" . ">n"
. "<rss version="2.0">n"
. "<channel>n"
. "<title>$title</title>n"
. "<link>http://{$_SERVER['HTTP_HOST']}/</link>n"
. "<description>$site_name</description>n"
. "<language>fr</language>n"
. "<lastBuildDate>" . ($last_time ? date('r',$last_time) :
'none') . "</
lastBuildDate>n"
. "<image>n"
.
"<url>http://{$_SERVER['HTTP_HOST']}/config/toc_logo.gif</url>n"
. "<title>$title</title> n"
. "<link>http://{$_SERVER['HTTP_HOST']}/</link>n"
. "</image>n";

et, pour chaque document considéré comme assez récent :

echo "<item>n"
. "<title>{$doc['info']->title}</title>n"
. "<category>" . $domain_list[$doc['info']->domain]['name'] .
"</categor
y>n"
.
"<link>http://{$_SERVER['HTTP_HOST']}/doc.php?ref={$doc['ref']}</link>
n";
echo "<description><![CDATA[ ";
if ($doc['info']->desc != '') echo $doc['info']->desc . ' ';
if ($status_all && ($doc['info']->status != 'V')) echo '(' .
$status_lis
t[$doc['info']->status] . ') ';
echo "]]></description>n";
echo "<author>" . $doc['info']->author . "</author>n"
. "<pubDate>" . date('r',$doc['update_time']) . "</pubDate>n"
. "</item>n";

et, à la fin :

echo "</channel>n</rss>n";

Ca, ça marchait bien. Les valeurs que tu cites pour tes headers, je ne
connais pas. Et avec un attachement en plus, je ne vois pas.