【问题标题】:Change RSS feed, but only new items更改 RSS 提要,但仅限新项目
【发布时间】:2015-02-18 06:50:44
【问题描述】:

我对 PHP 还很陌生,我正在尝试编写一个脚本来解决以下问题

  • 我有一个 RSS 提要,它每 10 分钟保存到我的服务器(从其他地方复制)。
  • RSS 提要上的时间戳(pubDate 标记)存在问题,它们始终具有正确的日期,但时间戳为 00:00:00 GMT(我无法控制)。
  • 因此,当我使用自动推特程序从提要中发布更新时(它每隔一小时左右检查一次),它不会 - 因此它只会发布每天的第一个更新。

因此,我试图在某种程度上修复它是检查提要是否已更改,如果已更改,则仅在新项目上将保存的 pubDate 更改为当前服务器时间。

我也有点困惑如何让它检查更改 - 如果我有一个更正的版本(具有相当准确的时间戳)保存到我的服务器,它总是会认为有更改,因为时间戳会始终为 00:00:00。我在想,检查两个提要中是否包含完整字符串的项目,例如 <guid isPermaLink="true">http://services.runescape.com/m=adventurers-log/a=161/display_player_profile.ws?searchName=A13d&id=-463827091</guid> - 由于末尾的 id= 保持不变,它只会更改发现新项目的 <pubDate>

http://services.runescape.com/m=adventurers-log/a=161/rssfeed?searchName=A13d 这里以一个提要为例。如果有人可以让我开始或指向某种可能有帮助的教程,我将不胜感激。这超出了我的想象,但我需要学习如何去做。

【问题讨论】:

    标签: php rss


    【解决方案1】:

    也许您的代码解析时间戳、日期格式有问题?

    我相信在具有相同<guid> 的项目之间进行完整字符串比较(<title><description>)的方法是您最好的选择。如果您有兴趣,这里有一些关于RSS duplicate detection 的阅读材料。

    【讨论】:

    • 不,他们网站上的 RSS 代码也显示了这一点,任何更新都始终是 00:00:00。我会阅读更多关于 guid 元素(这有),谢谢
    • 哦,真的。日期格式为<pubDate>Mon, 16 Feb 2015 00:00:00 GMT</pubDate>。他们可能会将时间重置为零。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    相关资源
    最近更新 更多