我正在使用cron命令来执行处理来自rss feed的数据的php脚本。
我通过以下方式获取数据:
$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 feed的新的更新数据。
有什么能让我期望file_get_contents()
的结果被缓存吗?如果是这样,我怎样才能强制脚本每次都获得新的结果?
答案 0 :(得分:0)
如果它被缓存,则不在file_get_contents
端。 Apple和其他网站使用像Akamai这样的大型全球缓存网络,并且它们通常最终是一致的 - 点击一个缓存服务器可能会返回数小时的数据而另一个可能是最新的。如果您的服务器位于不同的地理位置,您会看到特别不同的数据。
一般来说,你无能为力。