PHP缓存simplexml - 一些RSS源不更新,但其他RSS源

时间:2017-05-24 16:23:40

标签: php rss simplexml

我们正在使用simplexml_load_file()来获取新闻报道的RSS源。原始xml订阅源构建日期会定期更新,但是如果我在使用simplexml_load_file()时使用print_r查看订阅源的数据,则构建日期不会像原始订阅源那样频繁更新。

例如,现在simplexml输出这个构建日期:

[lastBuildDate] => Tue, 23 May 2017 18:27:26 +0000

但是与xml的实际直接链接说明了这一点:

<lastBuildDate>Wed, 24 May 2017 16:21:44 +0000</lastBuildDate>

...我们缺少来自最新版本的数据(来自Feed的故事)。

更奇怪的是,虽然我们以相同的方式加载它们,但我们提取的只有一些RSS提要有这种行为。源自我们服务器的订阅源是好的,另一个来自外部源的订阅源很好,但来自另一个外部源的两个是罪魁祸首。

我们只是这样做:

 <?php
      $xml=simplexml_load_file("http://path/to/xml/file");
      print_r($xml);
    ?>

在每个页面上加载我们的目标是从RSS源获取MOST CURRENT数据。我们还在页面的标题中放置了一些缓存破坏的东西(缓存控制和编译指示),但它没有帮助。我们缺少什么?

这是我们安装的:PHP版本5.6.30和Apache / 2.2.15(Unix)。

1 个答案:

答案 0 :(得分:0)

有一些缓存发生在simple_xml_loadfile的某个地方,这是我无法理解的。使用SimplePie PHP feed解析解决了我们的问题,因为缓存的处理内置于此工具中。