CSV出力には、fpuscsv関数を利用するのが簡単だが、文字コードの指定ができないなど
不便な点がいくつかある。
// 追記モードでファイルを開く
$fp = foepn('ファイルパス', 'a');
(問題点)
・文字コードの指定ができない。
・エンクロージャを必ず付ける(付けない)ような指定ができない。
・改行コードの指定ができない。
この問題を解決する場合は、自前で出力データを編集してファイル出力するしかない。
// 追記モードでファイルを開く
// CSV出力用の配列を用意
$line = array();
$line[] = "a";
$line[] = "b";
$line[] = "c";
$line[] = "d";
// 配列を自動的にCSV出力
fputcsv($fp, $line);
fputcsv($fp, $line);
// ファイルクローズ
fclose($fp);
・文字コードの指定ができない。
・エンクロージャを必ず付ける(付けない)ような指定ができない。
・改行コードの指定ができない。
この問題を解決する場合は、自前で出力データを編集してファイル出力するしかない。
// 追記モードでファイルを開く
$fp = foepn('ファイルパス', 'a');
// 出力データを編集(改行コードはCRLF)
$line = "a,b,c,d\r\n";
// UTF-8をSJISに変換して出力
fwrite($fp, mb_convert_encoding($line, 'SJIS', 'UTF-8'));
fwrite($fp, mb_convert_encoding($line, 'SJIS', 'UTF-8'));
// ファイルクローズ
fclose($fp);
0 件のコメント:
コメントを投稿