让用户下载XML文件

时间:2010-12-03 19:34:18

标签: php header

我已经在PHP中准备了一个XML字符串,我想让用户在XML文件中下载字符串。

是否可以为用户提供下载(例如text.xml)而无需将xml文件实际保存到服务器?

3 个答案:

答案 0 :(得分:46)

<?php
header('Content-type: text/xml');
header('Content-Disposition: attachment; filename="text.xml"');

echo $xml_contents;

答案 1 :(得分:12)

如果您使用某种输出缓冲作为框架的一部分,则必须在XML输出下面添加exit(),如下所示:

<?php
header('Content-type: text/xml');
header('Content-Disposition: attachment; filename="text.xml"');

echo $xml_contents;
exit();

否则,您将获得整个缓冲页面,而不仅仅是XML输出。

答案 2 :(得分:0)

首先使用php的SimpleXMLElement创建XML文件 您可能希望先清理以防止该HTML代码位于该下载的xml文件中。这就是我想出的:

 $xml = new SimpleXMLElement("<root/>");
 $xml->addChild("foo", "bar");

 ob_end_clean();
 header_remove();

 header("Content-type: text/xml");
 header('Content-Desposition: attachment; filename="foobar.xml"');
 echo $xml->asXML();
 exit();

这就是下载的“foobar.xml”文件的外观:

<?xml version="1.0"?>
<root><foo>bar</foo></root>

Testet与Chrome版本65.0.3325.181,Firefox 59.0.1和Microsoft Edge 41.16299.371.0