2017-05-31 52 views
1

我利用了我可以從某個URL獲得的外部XML文件。現在,在獲取XML文件時存在一個問題,因爲如果嘗試獲取文件的次數過多,則根本無法獲取任何內容,這可能是爲了限制請求數量。每天下載外部XML文件

是否有可能通過PHP每天下載XML文件以限制請求到外部服務器。

我檢查了我有哪些選項,我看到CRON是解決這個問題最多的解決方案。但我想通過PHP來做到這一點,如果可能的話,因爲我沒有訪問服務器來設置CRON。

是否有人將XML文件下載到您自己的服務器並使用它,並每天下載該XML文件以限制請求?

我有這樣的代碼來獲得實際的XML文件:

$xml = file_get_contents("my-xml-file-url-external"); 
file_put_contents("my-path-to-save-xml-file", $xml); 

但我怎麼能保證這個得到每天都來?

回答

3

您可以檢查的最後修改時間(見filemtime()文檔)你寫的文件,如果它比一天多舊的(或不存在的),將其覆蓋:

$cacheFile = "file.xml"; 

if (!file_exists($cacheFile) || filemtime($cacheFile) < time() - 86400) 
{ 
    $xml = file_get_contents("my-xml-file-url-external"); 
    file_put_contents($cacheFile, $xml); 
} else { 
    $xml = file_get_contents($cacheFile); 
}