PHPでCSVデータを書き出す
- January 27th, 2011
PHPでCSVデータを書き出す作業をしたのでメモしておきます。
作業手順
- カンマ区切りで横軸のセルが移動する
- 改行コードで縦軸のセルが移動する
- CSV形式のHTTPヘッダを定義して出力する
参考サイト
値を定義する
文字コードを「sjis-win」に変換する。
<?php // CSVに出力する配列 $data_title = array('ID', '品名', '価格'); $data = array( array('id'=>1, 'name'=>'apple', 'price'=>'100'), array('id'=>2, 'name'=>'grape', 'price'=>'180'), array('id'=>3, 'name'=>'orange', 'price'=>'110'), ); // タイトル設定 $csv = ""; foreach ($data_title as $i => $value) { $value = mb_convert_encoding($value, 'sjis-win', 'utf-8'); $csv .= ($i ? ',' : ''). $value; } $csv .= "\n"; // 改行コード // コンテンツ設定 foreach ($data as $value) { $value = mb_convert_variables('sjis-win', 'utf-8', $value); $csv .= $value['id']. ",". $value['name']. ",". $value['price']. "\n"; } ?>
ヘッダを定義して出力する
<?php // CSVのHTTPヘッダ header("Content-Type: application/octet-stream; charset=sjis-win"); header("Content-Disposition: attachment; filename=hoge.csv"); echo $csv; ?>
- January 27th, 2011