CSVファイルを直接出力+ダウンロード
というわけでやってみました。
$sql = "SELECT * FROM table"; $sth = $dbh->query($sql); $i=0; $ii=0; while($row = $sth->fetch(PDO::FETCH_ASSOC)){ $lineData = $row[$i] . ","; $i++; while($i<$numOfRows){ $lineData .= $row[$i] . "," ; $i++; } $lineData .= $row[$formsAllField[$numOfLastRow]]; $csvData[$ii] = split(',',$lineData); $ii++; $i=0; } //headerの指定によってファイルとして認識させ、ダウンロード可能 header("Content-disposition: attachment; filename=data.csv"); header("Content-type: plain/text; name=data.csv"); //php://outputに出力することで書き込み可能な上にファイルは残らない!素敵! $fp = fopen('php://output','w'); //foreachでライン毎にfputcsvでCSV出力 foreach($csvData as $line){ fputcsv($fp, $line); } fclose($fp); //exit処理しないとHTML本文も一緒に出力されてしまう exit; }