PHPのfgetcsvでCSVファイルを一行ずつ取り出してなんちゃらするというプログラムを書いた時、Macで作成されたCSVファイルが上手く読み込めないという現象がありました。

調べてみたところ、改行コードが「CR」だとfgetcsvは理解できないようです。CSVで改行がわからないって……ファイル丸ごと1行で認識されるということでしょうかね? だとしたら動かなくても当然ですね。。。

以下の一行をプログラムに追加して対処しました。

PHP

ini_set(“auto_detect_line_endings”, “1”);