毎回良く忘れて、毎回ググる。
要は内部バッファ取ってから標準出力に吐き出してって感じ。
//generate csv
ob_start();
foreach ($csv as $fields)
{
fputcsv(fopen('php://output', 'w'), $fields);
}
$str = ob_get_clean();
$str = mb_convert_encoding($str,"sjis","utf8");
return $str;
まぁCSVと来たらExcelなので基本はSJISエンコード。ob_周りの使い方もいっつも忘れるんよねぇ。消すとか返すとかいろいろややこしくて…
追記(08/19):色々とツッコミを頂きました。なんでもSJISってのはまずいですね…コメント欄参照してください。