PHP / RSS Feed约会设置

时间:2012-08-27 22:55:22

标签: php rss

我有一个从我设计的自定义博客生成的RSS源;但是,我的一个帖子每天都会出现在我的RSS阅读器上。我终于检查了日期并看到它每天出现,但从2000年开始.Google阅读器显示日期,就像每天更新帖子但查看XML代码,即显示2000.所有其他帖子都是显示为1969年。

以下是我设置php代码的方法:

$rssfeed.='<pubDate>'.date("D, d M Y H:i:s O",strtotime($date)).'</pubDate>';

这是正确的方法吗?

编辑:我可能是个白痴 - 我不会在我的代码中显示$ date作为变量 - 出于好奇,应该在那里做什么?

2 个答案:

答案 0 :(得分:2)

  

pubDate 频道内容的发布日期。例如,纽约时报每天发布,出版日期每24小时翻一次。那是渠道的pubDate发生变化的时候。 RSS中的所有日期时间均符合 RFC 822 的日期和时间规范,但年份可以用两个字符或四个字符(四个首选)表示。 星期六,2002年9月7日00:00:01 GMT

请参阅:http://cyber.law.harvard.edu/rss/rss.html

$fromStringDate = strtotime($date);
if (!$fromStringDate) throw new Exception(sprintf('Date-Failure in "%s"', $date));
$rfc822Date = date("r", $fromStringDate);
$rssfeed .= sprintf('<pubDate>%s</pubDate>', $rfc822Date);

另请参阅:http://php.net/date

答案 1 :(得分:0)

我想出了问题,这里是完整的代码:

while ($row = mysql_fetch_array($result)) {
    extract($row);
    $rssfeed.='<item>';
    $rssfeed.='<title>'.$title.'</title>';
    $rssfeed.='<description>'.validate($news).'</description>';
    $rssfeed.='<pubDate>'.date('r',$date).'</pubDate>';
    $rssfeed.='</item>';
}

在倒数第二行显示$date时,由于某种原因,我将其包含在strtotime中。我删除了,一切都很好!