使用之前的pubDate发布之后发布最新的RSS项目

时间:2013-03-01 10:47:26

标签: php xml-parsing rss

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

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

  2. 然后每次再次运行时,它会检查RSS项目是否具有更高版本 pubDate比上次运行并将其存储在数据库中

  3. 我的问题是,对于特定网站的Feed,有些项目会在最后一个项目之后添加,但使用相同的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;
    }
    

1 个答案:

答案 0 :(得分:1)

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