PHPでCSVを出力するなら、fputcsv()が便利。
$fp = fopen('test.csv', 'w');
fputcsv($fp, array(123, 'abc', '"quoted"', ',,,', 'あああ'));
fclose($fp);
↓
123,abc,"""quoted""",",,,",あああ
ポイント
- 必要に応じてダブルクォートで囲ってくれる
- データにダブルクォートを含む場合、ダブルクォートを2重にしてエスケープしてくれる
デフォルトではカンマ区切りになるが、第3引数で区切り文字を指定できる。
タブ区切り(TSV)にする場合の例
$fp = fopen('test.csv', 'w');
fputcsv($fp, array(123, 'abc', '"quoted"', ',,,', 'あああ'), "\t");
fclose($fp);
難点は文字コードの指定ができないこと。
CSVをExcelで普通に開く場合、マルチバイト文字がShift_JISでないと文字化けしてしまう。
事前にSJISに変換しておくしかないのか。
0 件のコメント:
コメントを投稿