2014-01-31 197 views
0

我正在嘗試創建一個顯示我所有消息的rss feed。 到目前爲止,代碼似乎是在那裏的一半,因爲如果我查看頁面源,所有的內容都存在,但實際頁面上沒有任何內容顯示。rss feed not display

這裏是我的代碼rss.php

<?php 
ini_set('display_errors', 1); 
header("Content-type: text/xml"); 

include("config.php"); 
global $NEWS; 
$str = '<?xml version="1.0" encoding="utf-8"?>'; 
$str.= '<rss version="2.0">'; 
$str.='<channel>'; 
$sql = "SELECT * FROM $NEWS"; 

$result = mysql_query($sql) or die ($sql."".mysql_error()); 

while($row = mysql_fetch_object($result)){ 
    $str.= '<item>'; 
    $str.=' <a href="'.getSEOLink(13).'&article='.$row->id.'">'; 
    $str.= '<title>'.$row->title.'</title></a>'; 
    $str.= '<description><![CDATA['.$row->content. ']]></description>'; 
    $str.= '</item>'; 
} 

$str .='</channel>'; 
$str .='</rss>'; 
echo $str; 
?> 
+0

你介意把這個url發佈到feed嗎?這將更容易調試! –

+0

目前它在我的本地主機 – user3095193

回答

0

爲什麼不利用的SimpleXMLElementasXML

<?php 
ini_set('display_errors', 1); 
include("config.php"); 
global $NEWS; 

$str='<channel>'; 
$sql = "SELECT * FROM $NEWS"; 

$result = mysql_query($sql) or die ($sql."".mysql_error()); 

while($row = mysql_fetch_object($result)){ 
    $str.= '<item>'; 
    $str.=' <a href="'.getSEOLink(13).'&article='.$row->id.'">'; 
    $str.= '<title>'.$row->title.'</title></a>'; 
    $str.= '<description><![CDATA['.$row->content. ']]></description>'; 
    $str.= '</item>'; 
} 

$str .='</channel>'; 

$xml=new SimpleXMLElement($str); 
echo $xml->asXML(); 
+0

我試過了,我最終得到了一些錯誤 – user3095193

+0

我可以知道錯誤嗎? –

+0

有沒有另一種方法可以告訴你。當我把它放在這裏,它告訴我,這是很長的 – user3095193

0

你顯然產生有效的XML(因此你的瀏覽器不抱怨),但不是有效的RSS(因而飼料的讀者將無法讀取你的東西)。例如,<a>不是有效的RSS標籤,並且絕對不是<item>的子項。

複製生成的 XML(不是PHP源代碼)並使用您最喜歡的RSS驗證器(例如W3C Feed Validation Service)對其進行驗證。