0

domdocumentを使用してxmlファイルを作成しています:

$dom = new DOMDocument('1.0', 'iso-8859-1');
echo $dom->saveXML();

このファイルへのリンクをクリックすると、xmlファイルとして表示されます。代わりにダウンロードを促すにはどうすればよいですか?さらに、phpファイルの実際の名前である「backup.php」ではなく、「backup_11_7_09.xml」(今日の日付を挿入してxmlとして入力)としてダウンロードするように求めるにはどうすればよいですか。

4

3 に答える 3

11

Content-Dispositionエコーの前にヘッダーを添付ファイルとして設定します。

<?  header('Content-Disposition: attachment;filename=myfile.xml'); ?>

もちろん、をmyfile.xml使用strftime()してフォーマットして、ファイル名にフォーマットされた日付を取得できます。

<?
    $name = strftime('backup_%m_%d_%Y.xml');
    header('Content-Disposition: attachment;filename=' . $name);
    header('Content-Type: text/xml');

    echo $dom->saveXML();
?>
于 2009-11-07T17:44:42.617 に答える
3

これは機能するはずです:

header('Content-Disposition: attachment; filename=dom.xml');
header("Content-Type: application/force-download");
header('Pragma: private');
header('Cache-control: private, must-revalidate');

$dom = new DOMDocument('1.0', 'iso-8859-1');
echo $dom->saveXML();

セッションを使用している場合は、IE6での問題を防ぐために、次の設定を使用してください。

session_cache_limiter("must-revalidate");
session_start();
于 2009-11-07T17:46:00.957 に答える
2
<?php

// We'll be outputting a PDF
header('Content-type: text/xml');

// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="my xml file.xml"');

// The PDF source is in original.pdf
readfile('saved.xml'); // or otherwise print your xml to the response stream
?>

content-dispositionヘッダーを使用します。

于 2009-11-07T17:45:34.720 に答える