Google Chrome 将 XML 渲染为 RSS 源的文本

2022-08-30 16:40:55

我有这个脚本来为RSS源生成一个XML文件。在除Chrome以外的所有浏览器中都运行良好。Chrome 只是将 XML 呈现为文本。可能与之有关?header("Content-Type: application/rss+xml; charset=ISO-8859-1");

这是我使用的代码:

<?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;

?>

答案 1

这是chrome中的一个已知错误,尚未修复,chrome不会显示任何格式的xml rss源。

更新:现在有一个适用于Chrome的RSS订阅/阅读器扩展程序


答案 2

我遇到了同样的问题,我使用了“application/xml”,它直接修复了它。Chrome 不喜欢 “application/rss+xml”。


推荐