これが以前に尋ねられたのを見たことがありますが、いくつかの解決策を試した後、これを適切に機能させるのに苦労しています。問題は、データを csv 形式に正しくエクスポートできないことです。ob_end_clean を追加する前は、html で csv にエクスポートされていましたが、今では csv ではなく、テキストだけが表示されます。
必要なファイルのコードは次のとおりです。
if (isset($_POST["hidden"])) {
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('php://output','w');
foreach ($list as $row) {
ob_end_clean();
fputcsv($fp, $row);
}
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
}
現在、エクスポートを行うと、データは var_dump() のように画面に戻されます。私は単にこれをcsvファイルに入れたいだけで、htmlをそこら中に置く必要はありません。