私のウェブサイトの配列に入力されたデータからCSV書き出しをしようとしています。私はthis questionを使って私を助けていました。 CSV内にあるはずのデータがWebサイトに表示されますが、ファイルにはエクスポートされません。これは私が質問から取ったコードです:fputcsv()を使用してCSVにエクスポート
header("Content-Type: text/csv;charset=utf-8");
header("Content-Disposition: attachment;filename=\"$filename\"");
header("Pragma: no-cache");
header("Expires: 0");
$fp= fopen('php://output', 'w');
foreach ($data as $fields){
fputcsv($fp, $fields);
}
fclose($fp);
exit();
私は正確にヘッダ()関数が何をしているかを理解しません。これをファイルにダウンロードするにはどのようにすればよいですか?
それは私の配列がこのフォーマットである場合に役立ちます:
$data = array(dataset1(array, of, data), dataset2(array, of, data), dataset#(array, of, data));
EDIT:私の$ data配列には、セッションvaribleにあり、そこに私が(にsession_startを持っていたので、それはダウンロードを波平理由があった)といくつかので含みトップ。ダウンロードする代わりに画面にエコーが表示されますが、これを削除すると、エクスポートするデータがないためにダウンロードされます。誰にでもこれに対する解決策がありますか?
文字セットUTF-8を使用してファイルをCSVファイルとして宣言し、それに応じてファイルに名前を付けます。これは優れたチュートリアルです。 ---> http://code.stephenmorley.org/php/creating-downloadable-csv-files/ – clearshot66
HTTPヘッダー「Content-Disposition:attachment;」を送信することによって出力を表示すべきではなく$ filenameで指定した名前のファイルとしてダウンロードするようにブラウザに指示します。 実際にこのコードは、ファイルのダウンロードを引き起こすべきです(SHOULD)。 – masterfloda