我正在尝试找出如何将xml文件下载到我的服务器并保存1小时然后再次下载,以缓存它以加快我的网站速度,但不必太高兴。
到目前为止,我每次都下载它:
$data = file_get_contents('http://www.file.com/file.xml');
$fp = fopen('./file.xml', 'w+');
fwrite($fp, $data);
fclose($fp);
有人可以帮我解决这个问题吗?
提前致谢
理查德
答案 0 :(得分:5)
最好的解决方案是编写一个每小时运行一次的CRONJOB,然后生成xml。
如果您不知道,可以使用file modification time执行以下解决方案。
$sFileName = './file.xml';
$iCurrentTime = time();
$iFiletime = filemtime($sFileName);
if ($iFiletime < $iCurrentTime - 3600) {
$data = file_get_contents('http://www.file.com/file.xml');
$fp = fopen($sFileName, 'w+');
fwrite($fp, $data);
fclose($fp);
}
答案 1 :(得分:1)
在某些情况下,这就是缓存的意思(你写的是什么),
除非您想将其保存在内存中(实际缓存)。在这种情况下,您需要http://memcached.org