複数行のデータからCSVファイルを生成するときに、
fputcsv関数を使うと、必要なデータによしなにダブルクォーテーションをつけてくれるのだけど、
この勝手クォーテーションがどうしても邪魔だったので、fwrite関数を使用することにした。
fwrite関数を使用する場合は改行コードを自分でつけなければならないので、以下のように書いてみた。
$line = 'hoge';
$fp = fopen('data.txt', 'w');
fwrite($fp, $line.'¥n');
ところが、これだと「¥n」がそのまま出力された。
そこで最終行を、
fwrite($fp, $line."¥n");
としてやるときちんと改行された。
これはPHPの仕様で、ダブルクォーテーションで囲まれた文字列が論理的解釈によって展開されるからで、その中にはエスケープシーケンスや変数を含めることができる。
逆にシングルクォーテーションだと単なる文字列として解釈される。