ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

PHP:CSV形式を自力実装する際の手間

PHPで作られた既存のシステムで、CSV形式でのファイルのダウンロード機能に、なぜかfputcsvが使われていませんでした。
fputcsv
ファイルを一旦作成後ダウンロードするのではなく、直接データを出力してダウンロードするため、使われていないようです。

fputcsvが使われていないため、全て自力で処理しなければなりません。

プログラミング
unsplash-logoJoshua Aragon

自力実装の面倒なところ

データにダブルクォーテーションが含まれていた場合、CSV形式にするためには、ダブルクォーテーションを2重にしてエスケープしなければなりません。
postd.cc
codezine.jp

既存のシステムのコードを見ると、

preg_replace("/\"/", "\"\"", $data1);

としてダブルクォーテーションをエスケープしていました。

一見すると何をしているのだろうかと思う内容で、コメントがあったので意味が理解できました。