Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> PHP&MySQL -> 【PHP】続:fputcsv関数の改行コード

【PHP】続:fputcsv関数の改行コード

前回、stream_filter_registerを使った、fputcsvの改行コードをLFからCRLFに変更する例を紹介したが、一部のCSVデータで、変な所で改行してしまう不具合を発見した。

というわけで、解決策を探していたのだが、いっそstream_filter_registerをやめて、全て出力した後に、str_replaceを使って、一気に変換しちゃえばいいじゃん、という結論に達した。


以下、例。試してないので、多少編集は必要かも。

rewind後のstream_get_contentsがミソ。


$list = array (

array('aaa', 'bbb', 'ccc', 'dddd'),

array('123', '456', '789'),

array('"aaa"', '"bbb"')

);

$fp = fopen('file.csv', 'w');


foreach ($list as $fields) {

fputcsv($fp, $fields);

}


rewind($fp);


$buf = str_replace("n", "rn", stream_get_contents($fp));


fclose($fp);


$fp = fopen('file.csv', 'w');


fwrite($fp, $buf);

fclose($fp);


この記事の最終更新日:2019/07/19
最初に記事を書いた日:2012/03/14

この記事をシェアする

このエントリーをはてなブックマークに追加

関連記事

資料室のトップに戻る

Meteoric Streamについて

管理人

Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> PHP&MySQL -> 【PHP】続:fputcsv関数の改行コード
▲Top