【问题标题】:Parse new RSS items when published with older pubDate使用旧 pubDate 发布时解析新的 RSS 项目
【发布时间】:2013-03-01 10:47:25
【问题描述】:

我正在使用以下过程解析 RSS 提要:

  1. 解析器运行一次,获取所有 RSS 项并存储运行时间;

  2. 然后每次它再次运行时,它都会检查一个 RSS 项目是否有 pubDate 比上次运行并存储在数据库中。

我的问题是,对于特定网站的提要,在最后一个提要之后添加了一些项目,但具有相同的 pubDate,因此我的解析器不会存储它们。

例如在晚上 9 点,它有一个带有 <pubDate>Fri, 01 Mar 2013 05:00:00 Z</pubDate> 的项目 后来在 12 点,它添加了另一个具有相同的 pubDate

Feed 不提供guid

有什么办法可以得到最新的货品吗?

这里是我现在使用的代码

function getLatest($lastTimeRun, $data, $pubDates)
{
    $latestData = array();
    for($i=0;$i<sizeof($data);$i++)
    {
        $pubDates[$i] = strtotime($pubDates[$i]);
        //compare the last time the script run with each feed's item publish date                
        if($lastTimeRun < $pubDates[$i])
        {
            array_push($latestData, $data[$i]);
        }
    }

    return $latestData;
}

【问题讨论】:

    标签: php xml-parsing rss


    【解决方案1】:

    我会简单地比较最后一个发布日期之后的最后一个 x 的标题以查找任何新条目,同时匹配其他数据以查看它是否 真的是一个新条目。然后只限制您要查找的最后 xx 个条目。

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      相关资源
      最近更新 更多