2017-05-24 51 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提要解析解決了我們的問題,因爲緩存的處理內置於此工具中。