使用PHP创建的RSS订阅源仅显示订阅源阅读器中的标题
问题描述:
我正在使用以下PHP代码为RSS订阅源生成XML,但似乎无法正常工作。 Feed阅读器中没有简短的描述,我看到的只是文章的标题。另外,所有文章都说它们是同时发布的。这是我第一次尝试设置RSS源,所以我确信我犯了几个愚蠢的错误。使用PHP创建的RSS订阅源仅显示订阅源阅读器中的标题
$result = mysql_query("SELECT * FROM blog ORDER BY id DESC LIMIT 10");
$date = date(DATE_RFC822);
header('Content-type: text/xml');
echo ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
echo ("<rss version=\"2.0\">\n");
echo ("<channel>\n");
echo ("<lastBuildDate>$date</lastBuildDate>\n");
echo ("<pubDate>$date</pubDate>\n");
echo ("<title>my website name</title>\n");
echo ("<description><![CDATA[the description]]></description>\n");
echo ("<link>http://my-domain.com</link>\n");
echo ("<language>en</language>\n");
$ch=100;
while ($a = mysql_fetch_array($result)) {
$headline = htmlentities(stripslashes($a['subject']));
$posturl = $a[perm_link];
$content = $a['post'];
$date = date(DATE_RFC822, $a['posted']);
echo ("<item>\n");
echo ("<title>$headline</title>\n");
echo ("<link>$posturl</link>\n");
echo ("<description><![CDATA[$content]]></description>\n");
echo ("<guid isPermaLink=\"true\">$posturl</guid>\n");
echo ("<pubDate>$date2</pubDate>\n");
echo ("</item>\n");
}
echo ("</channel>\n");
echo ("</rss>\n");
答
你确定$ A [ '后']包含交?
缺少$ a [perm_link]中数组索引的引号;
您存储日期的变量称为$ date,而在Feed中您将放置$ date2;
(不妥协的功能,但)为什么你只是在循环之前声明$ ch var?
+0
是的,100%的把握。我可以在XML文件中看到它。 3.谢谢,不知道我错过了那一个。这解决了日期问题,另一个问题现在似乎也得到了解决。 – 2010-12-21 08:37:49
请使用正确的XML解析器这个......就像[simplexml的(http://php.net/manual/en/book.simplexml.php) – ajreal 2010-12-21 08:39:39