PHPで配列をCSVダウンロードさせるのにCSVの一時的にファイルを作成してファイルをダウンロードさせる例が多いけどファイルを作成しないでダウンロードさせることもできるのね。
<?php
$data = array(
array('あああ', '奈良県', 'aaa@example.com'),
array('いいい', '大阪府', 'bbb@example.com'),
array('ううう', '東京都', 'ccc@example.com'),
);
// 文字コード変換(UTF-8 ⇒ SJIS-win)
mb_convert_variables('SJIS-win', 'UTF-8', $data);
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=data.csv');
$stream = fopen('php://output', 'w');
foreach ($data as $row) {
fputcsv($stream, $row);
}
exit;