PHP сгенерировал XML-файл для загрузки правильного типа файла в диалоге сохранения как - PullRequest
0 голосов
/ 04 июля 2010

У меня есть PHP-файл с именем dynamicxml.php, который выполняет кучу кода, извлекает данные из базы данных и создает файл XML. Когда я щелкаю правой кнопкой мыши и сохраняю ссылку для dynamicxml.php?var=test, мне нужно диалоговое окно для выбора xml в качестве типа файла по умолчанию и переименования файла в var.xml:

header("Content-type: text/xml");
echo '<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<blah><blah_blah>'.$_GET['var'].'</blah></blah>';

При нажатии на ссылку он загружает XML-файл в браузер. Сохранение этой страницы сохраняет ее как var.xml. Но при щелчке правой кнопкой мыши и сохранении он сохраняется как dynamicxml.php и как тип файла php.

Должен ли я манипулировать вещами с помощью htaccess или есть другие альтернативы?

1 Ответ

0 голосов
/ 04 июля 2010

вам не следует пытаться делать это, потому что браузеры работают по-разному, сохраняя через «сохранить как ...». например, Chrome и Opera сохранят ваш файл как .htm (вероятно). я вижу два возможных способа исправить ситуацию (и я бы не стал делать ни один из них):

  • установить apache для обработки xml как php. AddType text/xml php

  • создать правило перезаписи, чтобы перенаправить все с * .xml в каком-либо каталоге на dynamicxml.php

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.xml$ - [NC,L]
    RewriteRule ^.xml$ dynamicxml.php [NC,L]
    
...