2017-05-31 53 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); 
}