Сохранение XML-файла

187
20 апреля 2018, 14:32

Имеется XML-файл, лежащий в папке files.

По нажатию на кнопку он "собирается" и должен скачиваться.

Как можно это реализовать серез header (или иным способом), чтобы при сохранение не обнавлялась страница?

Answer 1

если вы знаете про функцию header, то это уже хорошо. но не поленитесь прочитать документацию к ней:

Если нужно предупредить пользователя о необходимости сохранить пересылаемые данные, такие как сгенерированный PDF-файл, можно воспользоваться заголовком » Content-Disposition, который подставляет рекомендуемое имя файла и заставляет браузер показать диалог загрузки.
Пример #1 Диалог загрузки

 // Будем передавать PDF
 header('Content-Type: application/pdf');
 // Он будет называться downloaded.pdf
 header('Content-Disposition: attachment; filename="downloaded.pdf"');
 // Исходный PDF-файл original.pdf
 readfile('original.pdf');

в вашем случае mime-type следует указать text/xml или application/xml, ну и если файл собирается динамически, то вывести его через echo/print:

 $xml = new SimpleXMLElement("<root></root>");
 // формируем xml
 // ....
 // сохраняем в файл
 $xml->asXML("/path/to/your/file.xml");
 // отправляем заголовки для скачивания
 header('Content-Type: application/xml');
 header('Content-Disposition: attachment; filename="myfile.xml"');
 // скидываем сам файл
 print $xml->asXML();
READ ALSO
Как преобразовать дамп массива в его структуру?

Как преобразовать дамп массива в его структуру?

Можно ли преобразовать дамп массива обратно в массив? Например, с помощью print_r() я получаю дамп:

177
IP переадресация WPML

IP переадресация WPML

После того как я захожу сайт с помощью VPN переадресация не работает ( переадресовывает на 'hy', на мой натуральный IP ), хотя при var_dump($ip и $dataArray)...

156
Выбрать нужный &lt;div&gt; javascript

Выбрать нужный <div> javascript

Есть такая структура:

211