2010-12-21 101 views
0

我正在使用以下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"); 
+0

請使用正確的XML解析器這個......就像[simplexml的(http://php.net/manual/en/book.simplexml.php) – ajreal 2010-12-21 08:39:39

回答

0
  1. 你確定$ A [ '後']包含交?

  2. 缺少$ a [perm_link]中數組索引的引號;

  3. 您存儲日期的變量稱爲$ date,而在Feed中您將放置$ date2;

  4. (不妥協的功能,但)爲什麼你只是在循環之前聲明$ ch var?

+0

是的,100%的把握。我可以在XML文件中看到它。 3.謝謝,不知道我錯過了那一個。這解決了日期問題,另一個問題現在似乎也得到了解決。 – 2010-12-21 08:37:49