Google Chrome отображает XML как текст для RSS-канала - PullRequest
24 голосов
/ 01 ноября 2009

У меня есть этот скрипт для создания XML-файла для RSS-канала. Прекрасно работает в любом браузере, кроме 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;

?>

Ответы [ 6 ]

26 голосов
/ 01 ноября 2009

Это известная ошибка в chrome, которая еще не исправлена, chrome не отображает XML-каналы RSS ни с каким форматированием.

Обновление: теперь имеется расширение для подписки / чтения RSS для Chrome.

5 голосов
/ 19 ноября 2012

У меня была такая же проблема, и я использовал "application / xml", и она исправила ее. Chrome не нравится "application / rss + xml".

2 голосов
/ 12 февраля 2010

Суть в том, что поддержка RSS не используется "большинством" пользователей, и пока что они реализуют ее только как расширение. Расширение доступно здесь: RSS SubscriptionExtension

Подробно обсуждается это в заключительном комментарии к ошибке - вы можете прочитать заметки разработчика здесь: Комментарий 149

1 голос
/ 04 марта 2010

попробуйте расширение chrome "XML Tree"

1 голос
/ 01 ноября 2009

Попробуйте изменить заголовок на text/xml и посмотрите, поможет ли это:

header("Content-Type: text/xml; charset=ISO-8859-1");
0 голосов
/ 09 августа 2012

Краткий ответ: добавить "view-source: {feedurl}"

Обратите внимание, что когда URL заканчивается на .xml и распознается как лента Chrome, Chrome досадно открывает диалоговое окно «Сохранить файл». Но многие URL фидов не заканчиваются расширением (например, .xml), например:

http://feeds.feedburner.com/ScottHanselman

В корне этот URL по-прежнему является обычным xml-каналом, но для нас, программистов, которые хотят видеть настоящий xml, Chrome и другие в этом случае, показывают удобочитаемое отображение фида (очень раздражает!) .

Таким образом, ответ на обе этих проблем содержится в приведенном выше комментарии Арне Руманна-Куррика. Он должен был поставить это как ответ, потому что это работает!

вид-источник: http://feeds.feedburner.com/ScottHanselman Тебе даже не нужно "http://".

...