2014-11-20 89 views
0

我正在使用cron命令來執行處理來自rss提要的數據的php腳本。使用file_get_contents()可疑緩存

我採集數據用:

$response_xml_data = file_get_contents("https://itunes.apple.com/us/rss/toppaidmacapps/limit=200/genre=12014/xml"); 

然後我分析數據,使用:

$data = simplexml_load_string($response_xml_data); 

function object2array($object) 
{ 
    return json_decode(json_encode($object), TRUE); 
} 

$xmlArray = (object2array($data)); 

然後,我通過$xmlArray重複登錄,並適當地通知我的數據。

我對所有這些工作的方式感到高興,除了我拿起了一些東西,讓我懷疑是否有東西自動緩存xml數據。我問,因爲我正在將所有這些管理從一臺託管服務器移到另一臺託管服務器,而恰巧同時在兩個地方都運行腳本。其中一人繼續在一小時內提供相同的數據,而一個正在運行「新鮮」的人提供來自RSS源的新的更新數據。

有什麼會讓我期待file_get_contents()的結果被緩存嗎?如果是這樣,我怎麼能強制腳本每次都獲得新的結果?

回答

0

如果它被緩存,它不在file_get_contents端。 Apple和其他網站使用像Akamai這樣的大型全球緩存網絡,並且它們通常最終是一致的 - 點擊一個緩存服務器可能會返回數小時的數據,而另一個可能是最新的。如果您的服務器位於不同的地理位置,您將看到特別不同的數據。

一般來說,你無能爲力。

+0

啊,這是有道理的......我沒有想到質疑我的假設,即兩個腳本都從同一臺服務器上拉出來。 – 2014-11-20 17:14:03