Google Chrome rendant XML comme texte pour le flux RSS

j'ai ce script pour générer un fichier XML pour un flux RSS. Fonctionne parfaitement dans tous les navigateurs sauf Chrome. Chrome ne fait que rendre le XML sous forme de texte. Quelque chose à faire avec header("Content-Type: application/rss+xml; charset=ISO-8859-1"); éventuellement?

voici le code que j'utilise:

<?php

$linkUp = "http://localhost/sites/myBlog/";

header("Content-Type: application/rss+xml; charset=ISO-8859-1");

$rssfeed  = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$rssfeed .= '<rss version="2.0">';
$rssfeed .= '<channel>';
$rssfeed .= '<title>Mytitle</title>';
$rssfeed .= '<link>' . $linkUp . '</link>';
$rssfeed .= '<description>Mydescription</description>';
$rssfeed .= '<language>en-us</language>';
$rssfeed .= '<copyright>&copy; ' . strftime('%Y') .  ' . " " . ' . $linkUp . '</copyright>';


$query = "SELECT * FROM rss";
$result = $db->query($query);

while($row = $db->fetch_array($result)) {

    $rssfeed .= '<item>';
    $rssfeed .= '<title>' . $row['rss_title'] . '</title>';
    $rssfeed .= '<description>' . $row['rss_description'] . '</description>';
    $rssfeed .= '<link>' . $row['rss_link'] . '</link>';
    $rssfeed .= '<pubDate>' . date("D, d M Y H:i:s O", strtotime($date)) . '</pubDate>';
    $rssfeed .= '</item>';
}

$rssfeed .= '</channel>';
$rssfeed .= '</rss>';

echo $rssfeed;

?>
23
demandé sur Scott 2009-11-01 10:03:28

6 réponses

C'est un bogue connu dans chrome qui n'a pas encore été corrigé, chrome n'affiche pas de flux rss xml avec quelque formatage que ce soit.

mise à jour: il y a maintenant un RSS extension abonnement / lecteur pour Chrome.

26
répondu Wedge 2010-03-05 02:56:53

j'ai eu ce même problème et j'ai utilisé "application/xml" et il fixe le droit. Chrome n'aime pas"application/rss+xml".

5
répondu Andrew Christensen 2012-11-19 17:09:05

bref, le support RSS n'est pas utilisé par la "majorité" des utilisateurs, et en tant que tel ils ne l'implémentent que comme extension, pour le moment. L'extension est disponible ici: RSS SubscriptionExtension

il y a une discussion détaillée à ce sujet sur le commentaire de clôture du bogue - vous pouvez lire les notes du développeur ici: 149

2
répondu dmp 2010-02-12 12:36:56

Essayez de changer l'en-tête text/xml et voir si cela aide:

header("Content-Type: text/xml; charset=ISO-8859-1");
1
répondu Traveling Tech Guy 2009-11-01 07:25:57

essayez l'extension chrome "Arbre XML"

1
répondu EddieO 2010-03-04 14:46:28

brève réponse: ajouter " view-source: {feedurl}"

Notez que lorsque l'url se termine par .xml et est reconnu comme un flux par chrome, Chrome ouvre de manière gênante une boîte de dialogue Enregistrer fichier. Mais de nombreuses urls de flux ne se terminent pas par une extension (i.e. .xml), par exemple:

http://feeds.feedburner.com/ScottHanselman

à la racine, cette url est toujours un flux xml régulier, mais pour nous codeurs qui veulent juste voir le vrai xml, Chrome et les autres dans ce cas vous montrent un affichage lisible par l'homme du flux (très ennuyeux!).

Donc la réponse à de ces problèmes est contenu dans le commentaire ci-dessus donné par Arne Roomann-Kurrik. Il aurait dû le mettre comme réponse, parce que ça marche!

view-source:http: / / feeds.feedburner.com / ScottHanselman Vous n'avez même pas besoin "http://".

0
répondu Nicholas Petersen 2012-08-09 16:12:39