显示在第一个项目前7天具有日期的RSS项目

时间:2013-04-19 15:20:54

标签: php rss

我从这里提取RSS Feed:http://feeds.bbci.co.uk/news/rss.xml

在我的php中我有一个$ _GET ['Date']函数。当在查询字符串中键入日期时,php会显示自该日期以来发布的项目,如下所示:

$date1 = $_GET['Date'];
      $date2 = $item->pubDate;
      $publishdate = strtotime($date1);
      $entrydate = strtotime($date2);
      if ($publishdate > $entrydate) {
        continue;
      }

           ?>

但是,如果在查询字符串中没有输入日期,则会显示RSS中的所有项目。而不是发生这种情况,我希望能够显示仅在第一个/最新项目前7天发布的项目。我在下面用if语句开始,但我不确定如何引用第一项:

<?php
     foreach($rss->channel->item as $item){
         if (empty($_GET)) {

因此,如果RSS中的第一个条目的pubDate为:星期五,2013年4月19日14:57:47 GMT,那么php将仅显示2013年4月12日在19日前7天发布的条目。

提前致谢!

1 个答案:

答案 0 :(得分:0)

$rss = simplexml_load_file('http://feeds.bbci.co.uk/news/rss.xml');
//$last  = empty($_GET['Date'])?strtotime("-7 day", strtotime($rss->channel->item[0]->pubDate)):strtotime($_GET['Date']);
if(empty($_GET['Date']))
{
$date7daysago=date('dmY',strtotime("-7 day", strtotime($rss->channel->item[0]->pubDate)));
foreach($rss->channel->item as $item)
{
    if(date('dmY',strtotime($item->pubDate))===$date7daysago)
    {
     echo $item->title.'('.$item->pubDate.')<br>';
    } 
}
exit;
}