我只是想知道,通过PHP文件返回XML文件是多么可靠,因为XML是缓存的,我试图找到一种方法来轻松更新XML文件,而无需实际清除缓存,我想出了一个可以加载XML文件的小文件。
我的问题是,如果你回显一个XML文件,它会以纯文本形式出现,但是如果我发送头文件和echo / print_r一样可靠,就好像我只是加载普通的.XML文件一样?或者这会在某些浏览器中引起问题吗?
header("Content-type: text/xml");
print_r(file_get_contents("http://xxxx.com/myfile.xml"));
答案 0 :(得分:0)
没关系,很多人使用php
渲染xml来自网络的加载数据应该被缓存
json格式会更好
答案 1 :(得分:0)
问题不在于它是XML还是您使用PHP,而是外部资源。主要问题是外部URL。您无法控制外部资源,并且可以限制对其(来自您的服务器)的请求。如果外部服务出现故障,您的代理也会出现故障。
为了使其可靠,您应该缓存结果,以便您有后备,并且无需在请求时随时获取外部URL:
$url = 'http://xxxx.com/myfile.xml';
$file = '/local/cache/path/myfile.xml';
$expires = 1800;
header("Content-type: text/xml");
$data = false;
if (
!file_exists($file) ||
filemtime($file) + $expires < time()
) {
$data = file_get_contents($url);
}
if ($data) {
echo $data;
file_put_contents($file, $data);
} elseif (($cachedData = file_get_contents($file))) {
echo $cachedData;
} else {
// error: can not fetch external url and have no cached data
}
这适用于小型资源,像数据转储这样的大型资源需要更多逻辑(如单独的同步过程)。