Tag:Windows ( 1 Posts)

fputcsv関数の改行コード

CSV出力時に使うfputcsv関数の改行コードはOS に依存するので、Linuxサーバーでfputcsvを使うと改行コードがLFになる。

出力したCSVファイルをローカル(Windows)で開く時、ExcelやAccessではLFでも改行してくれるけど、
Windows標準のnotepadでは改行されない。(WindowsではCR+LF)

メモ帳にnotepad使わないから、すっかり改行コードについて見落としてた・・・・。
(一応ヘッダーには改行コードr\n"で入れてたのに)

fputcsv関数の改行コードについて、どうしたものかと調べていたら、
九州男児Webプログラマの備忘録」様に掲載されていた方法で上手くいきました。


[php] $outputFile = 'data.csv'; $csv_data = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789') ); //fputcsvでCSVファイル書き込み $fp = fopen($outputFile,'w'); foreach($csv_data as $line){ fputcsv($fp,$line); } rewind($fp); $buf = str_replace("\n", "\r\n", stream_get_contents($fp)); fclose($fp); $fp = fopen($outputFile, 'w'); fwrite($fp, $buf); fclose($fp); [/php]