PHP:CSV形式を自力実装する際の手間
PHPで作られた既存のシステムで、CSV形式でのファイルのダウンロード機能に、なぜかfputcsvが使われていませんでした。
fputcsv
ファイルを一旦作成後ダウンロードするのではなく、直接データを出力してダウンロードするため、使われていないようです。
fputcsvが使われていないため、全て自力で処理しなければなりません。
自力実装の面倒なところ
データにダブルクォーテーションが含まれていた場合、CSV形式にするためには、ダブルクォーテーションを2重にしてエスケープしなければなりません。
postd.cc
codezine.jp
既存のシステムのコードを見ると、
preg_replace("/\"/", "\"\"", $data1);
としてダブルクォーテーションをエスケープしていました。
一見すると何をしているのだろうかと思う内容で、コメントがあったので意味が理解できました。