CSV出力
DBのデータを取得しCSV出力する。
上記サイトを参考にCSV出力をする。
そしたらば
「Warning: Cannot modify header information - header already sent by」
と怒られた(>_<)
調べてみると・・・
よくあるPHP エラー Warning: Cannot modify header information - headers already sent by - ウェブ管理者の日常
・header関数の前にHTMLを書いてはいけない
これは、ブラウザに表示する部分を書いてはいけないという意味ではなく、HTMLの宣言(<!DOCTYPE html>)も含め、
書いてはいけないという事です。
なるほど(^^;
普通にHTML表示させるphpファイルに書いたのが悪かったようです。
という事は、CSV出力用のphpファイルは別に作らないとダメな様ですね~。
別ファイルにして、HTML要素をなくしてCSV内容をechoするだけにしたら大丈夫になりました(^-^)w
エンコード変換
またDBがUTF-8でCSVはSJISで出力したいので(Excelに読ませるため)、エンコード変換が必要です。
<?php $csv .= mb_convert_encoding($row->ColumnName1, 'SJIS-win', 'UTF-8').","; $csv .= mb_convert_encoding($row->ColumnName2, 'SJIS-win', 'UTF-8'); $csv .= "\n"; ?>
mb_convert_encoding関数で変換掛けました。
この時に'SJIS'じゃなくて'SJIS-win'に変えるようです。
- 作者: 山田祥寛
- 出版社/メーカー: 翔泳社
- 発売日: 2013/06/20
- メディア: Kindle版
- この商品を含むブログ (1件) を見る