【PHP】【CakePHP】CSVダウンロード
//ビューを使わない
$this->autoRender = false;
//Content-Typeを指定
$this->response->type('csv');
//download()内ではheader("Content-Disposition: attachment; filename=hoge.csv")を行っている
$this->response->download("hoge.csv");
$fp = fopen('php://output','w');
//CSVをエクセルで開くことを想定して文字コードをSJISへ変換する設定を行う
stream_filter_append($fp, 'convert.iconv.UTF-8/CP932', STREAM_FILTER_WRITE);
$user_list = [
[...],
[...],
[...],
];
foreach($user_list as $user){
fputcsv($fp, $user);
}
fclose($fp);
100, 'k1'=>200, 'k2'=>300, 'k3'=>400),
);
echo '
';
var_dump($list);
echo '
';
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
/*
出力結果
連想配列のキーは無視される。
100,200,300,400
*/
array('k0'=>100, 'k1'=>200, 'k2'=>300, 'k3'=>400),
'DEF'=> array('k00'=>1000, 'k11'=>2000, 'k22'=>3000, 'k33'=>4000),
);
echo '
';
var_dump($list);
echo '
';
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>
/*
出力結果
連想配列のキーは無視される。
100,200,300,400
1000,2000,3000,4000
*/
0 件のコメント:
コメントを投稿