PHP-获取一个在另一个PHP文件中得到响应的XML文件,然后将响应的XML输出保存到服务器


PHP - Getting an XML file that is echoed in another PHP file, then saving the echoed XML output to the server

我有一个名为xml_generate.php的PHP文件,它创建了一个DOM对象并在最后回显它。

假设它看起来像这样:

header("Content-type: text/xml"); 
$dom = new DOMDocument('1.0');
$node = $dom->createElement('foo');
$root = $dom->appendChild($node);
$node = $dom->createElement('bar');
$new_node = $root->appendChild($node);
echo $dom->saveXML();

我从jQuery访问这个文件,并在客户端显示内容。实际的xml_generate.php从数据库中动态创建DOM。

但是,我想要一个PHP文件,它将创建generate_XML.PHP生成的XML的备份,并将其保存到服务器。

因此,我需要以某种方式访问XML文档(在XML_generate.php中动态创建的文档)

我尝试了一些不同的函数来从XML_generate.php获取XML,例如:

$xml = http_get('xml_generate.php');

$xml = file_get_contents('xml_generate.php');

以及仅包括第一个文件(include('xml_generate.php'),然后仅尝试访问该文件中的$dom变量)。

但我似乎做不好。有什么关于最好的方法的想法吗?

您可以使用Output Buffering,它将缓冲发送到输出流的任何数据,然后在包含脚本后检索这些数据:

ob_start();
include "xml_generate.php";
$xml = ob_get_contents();
ob_end_clean();

不过,请确保捕获错误@"xml_generate.php",否则这些错误也会被缓冲,最终会得到无效的xml备份。