2017-05-24 55 views
0

我们使用simplexml_load_file()来获取新闻故事的RSS提要。原始的xml提要生成日期定期更新,但是如果我使用print_r在使用simplexml_load_file()时查看提要的数据,那么生成日期不会像原始提要那样频繁更新。PHP缓存simplexml - 一些RSS提要没有更新,但其他一些是

例如现在的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)。

+0

对我来说工作正常https://eval.in/804559 –

+0

Sahil - 也许我不太清楚。澄清 - 我不寻找一个字符串。我有一个实际的RSS源,其实际构建日期不断变化。我需要最新的和SimpleXML给我从数小时前建立的源数据。 –

+0

我很确定这是服务器级别的缓存问题。有任何想法吗? –

回答

0

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