Разрешить пользователю загружать файл XML

Я подготовил строку XML в PHP и хотел бы позволить пользователю загружать строку в файл XML.

Можно ли предложить пользователю загрузить файл (например, text.xml) без физического сохранения файла xml на сервере?

12 голосов | спросил PeeHaa 3 FriEurope/Moscow2010-12-03T22:34:17+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 22:34:17 +0300 2010, 22:34:17

3 ответа


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

echo $xml_contents;
ответил Ish 3 FriEurope/Moscow2010-12-03T22:36:11+03:00Europe/Moscow12bEurope/MoscowFri, 03 Dec 2010 22:36:11 +0300 2010, 22:36:11
0

Если вы используете какую-то буферизацию вывода как часть вашей платформы, вы должны добавить exit () ниже вывода XML, например:

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

echo $xml_contents;
exit();

В противном случае вы получите всю буферизованную страницу, а не только вывод XML.

ответил Vlado 8 FebruaryEurope/MoscowbWed, 08 Feb 2012 14:42:25 +0400000000pmWed, 08 Feb 2012 14:42:25 +040012 2012, 14:42:25
0

Когда вы сначала создаете файл XML, используя, например, php´s SimpleXMLElement Вы можете сначала очистить, чтобы предотвратить попадание 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>

Тестирование с Chrome версии 65.0.3325.181, Firefox 59.0.1 и Microsoft Edge 41.16299.371.0

ответил nukeurself 19 AMpThu, 19 Apr 2018 10:41:34 +030041Thursday 2018, 10:41:34

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132