Как сохранить файл XML в локальной файловой системе (клиент) в PHP? - PullRequest
1 голос
/ 16 февраля 2011

На моем сайте я реализовал следующие функции: если пользователь нажимает кнопку, он запускает функцию PHP, которая генерирует файл XML (эта функция PHP вызывается AJAX).Все работает хорошо, но я хочу изменить одну вещь: я не хочу, чтобы файл .XML создавался на сервере;вместо этого я хочу, чтобы пользователю было предложено сохранить файл .XML локально.Как я могу это сделать?Мой PHP-скрипт в настоящее время выглядит так:

$xml = new DOMDocument("1.0", "UTF-8");
$rootElement = $xml->appendChild($xml->createElement("SomeNodeName"));
...

// the following doesn't really work - xml doesn't get formatted :)
$xml->formatOutput = true; 

// this creates the actual file and places it on server. that's not what i need
$xml->save("MyXMLfile.xml"); 

Спасибо за помощь.

1 Ответ

1 голос
/ 16 февраля 2011

Каждый веб-контент имеет заголовок, поэтому, если вы укажете заголовок для XML-файла (с помощью функции header() с соответствующим кодом, он будет работать. Это означало бы сделать что-то вроде этого:

<?php
header('Content-type: text/xml');

// set the filename
header('Content-Disposition: attachment; filename="pwet.xml"');

// echo the content here
echo $xml; // simply like this, maybe?
...