rss feed not display
问题描述:
我正在尝试创建一个显示我所有消息的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;
?>
答
为什么不利用的SimpleXMLElement
asXML
?
<?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();
答
你显然产生有效的XML(因此你的浏览器不抱怨),但不是有效的RSS(因而饲料的读者将无法读取你的东西)。例如,<a>
不是有效的RSS标签,并且绝对不是<item>
的子项。
复制生成的 XML(不是PHP源代码)并使用您最喜欢的RSS验证器(例如W3C Feed Validation Service)对其进行验证。
你介意把这个url发布到feed吗?这将更容易调试! –
目前它在我的本地主机 – user3095193