【问题标题】:PHP Caching simplexml - Some RSS feeds not updating, but others arePHP 缓存 simplexml - 一些 RSS 提要没有更新,但其他提要
【发布时间】:2017-10-25 02:50:34
【问题描述】:

我们正在使用 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>

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

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

我们只是这样做:

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

在每次页面加载时,我们的目标是获取来自 RSS 提要的最新数据。我们还在页头(缓存控制和编译指示)中放置了一些缓存破坏的东西,但它没有帮助。我们缺少什么?

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

【问题讨论】:

  • 工作正常eval.in/804559
  • Sahil - 也许我不太清楚。为了澄清 - 我不是在寻找一个字符串。我有一个实际的 RSS 提要,其中的实际构建日期不断变化。我需要最新的,SimpleXML 为我提供了几个小时前构建的提要中的数据。
  • 我很确定这是服务器级别的缓存问题。有什么想法吗?
  • 我也有同样的问题。 SimpleXML 和一切都设置得很好。一些 RSS 提要在刷新时显示新帖子,有些则没有...我尝试设置 header('Cache-Control: no-cache'); 但这也无济于事...任何其他想法。使用 SimplePie 对我来说并不是一个真正的选择......

标签: php rss simplexml


【解决方案1】:

simple_xml_loadfile 的某处发生了一些缓存,这超出了我的理解。使用 SimplePie PHP 提要解析解决了我们的问题,因为缓存的处理内置在这个工具中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多