使用PHP返回XML文件的可靠性如何?头

时间:2016-06-12 07:59:23

标签: php xml header

我只是想知道,通过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"));

2 个答案:

答案 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
}

这适用于小型资源,像数据转储这样的大型资源需要更多逻辑(如单独的同步过程)。