このスニペットは、新しいファイル CSV の出力ストリームを読み取ります。その部分は機能します。サーバーからファイルを開くことができ、完璧に見えます。問題は、ブラウザを介してハード ドライブにダウンロードするファイルにあります。Windows マシンのスプレッドシート ソフトウェアまたは Excel では、正しく開いて読み取ることができません。
$NewFile = fopen($FileName,"w");
fwrite($NewFile, $output);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$FileName.'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($NewFile));
ob_clean();
flush();
readfile($NewFile);
CSV の内容は、ブラウザのダウンロードから開いたときは .