Почему этот XML не отображается в браузере так, как я хочу? - PullRequest
2 голосов
/ 26 января 2011

Я хочу использовать php для создания RSS из mysql. Я могу видеть содержание в исходном коде страницы. Но я не вижу часть элемента в веб-браузере (IE, Firefox или Opera). веб-браузер просто показывает

`Имя вашего RSS-канала или веб-сайта

Описание вашего канала или сайта.

<?PHP
require_once ('mysql_connect.php'); 
    //SET XML HEADER
    header('Content-type: text/xml');

    //CONSTRUCT RSS FEED HEADERS
    $output = '<rss version="2.0">';
    $output .= '<channel>';
    $output .= '<title>Your RSS Feed Name or Website Name</title>';
    $output .= '<description>A description of your feed or site.</description>';
    $output .= '<link>http://www.yoursite.com/</link>';
    $output .= '<copyright>Your copyright details</copyright>';

    //BODY OF RSS FEED
    mysql_select_db("rss", $db);
    $result = mysql_query("SELECT * FROM rss limit 15",$db);
        while ($row = mysql_fetch_array($result)) {
            $output .= '<item>';
                $output .= '<title>'. $row['title'] .'</title>';
                $output .= '<description>'. $row['content'] .'</description>';
                $output .= '<link>'. $row['link'] .'</link>';
                $output .= '<pubDate></pubDate>';
            $output .= '</item> ';
        }
    mysql_close($db); 
    //CLOSE RSS FEED
    $output .= '</channel>';
    $output .= '</rss>';

    //SEND COMPLETE RSS FEED TO BROWSER
    echo($output);

?>

источник xml выглядит так:

<rss version="2.0">
<channel>
<title>Your RSS Feed Name or Website Name</title>
<description>A description of your feed or site.</description>
<link>http://www.yoursite.com/</link>
<copyright>Your copyright details</copyright>
  <item>
    <title>MILAN, ITALY - SEPTEMBER 26: Models walk the runway at Emi&hellip</title>       
    <description>Date: Sep 26, 2009 7:45 PMNumber of Comments on Photo:0View Photo&hellip;</description>
    <link>http://picasaweb.google.com/roxyluvtony/KendraSpears#5551895410815389042</link>
    <pubDate></pubDate>
  </item>
  ...
</channel>
</rss>

Ответы [ 3 ]

1 голос
/ 26 января 2011

Перемещение моего комментария в ответ ...

это недопустимый XML из-за сущности &hellip; в ваших <title> и <description> узлах.

Оберните эти строки с помощью <![CDATA[tag]]> и попробуйте снова.

0 голосов
/ 26 января 2011

Может быть, из-за вашего типа контента?Попробуйте Content-Type: application/rss+xml вместо Content-type: text/xml

0 голосов
/ 26 января 2011

Вы выбираете обычный массив вместо ассоциативного массива. Должно быть:

while ($row = mysql_fetch_assoc($result))

Разница в mysql_fetch_array() будет извлекать целые числа в качестве индексов ($row[0]), а mysql_fetch_assoc() дает вам имена ($row['title']).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...