PHPサイトと、サイトのDBを更新するために実行されるcronジョブがあります。cronは、サードパーティによってアップロードされたCSVファイルを読み取ります。最近、このcronジョブは正しく機能しなくなりました。調査の結果、問題がCSVファイルにあることがわかりました。問題は、CSVの改行文字が標準の「\n」から古いASCII「^M」に変更され、PHPがこれを新しい行として認識しないように見えるため、CSVを複数行として表示する代わりに、それは1行の情報として見ています。私はこの違いをコマンドラインテキストアプリlessとvimでしか見ることができませんでした。PHPにこれらの改行文字を認識させる方法を知っている人はいますか?
例として、間違ったCSVファイルはvimでは次のようになります。
Heading 1,Heading 2,Heading 3,^MInfo 1-1,Info 1-2,Info 1-3,^MInfo 2-1,Info 2-2,Info 2-3,^M^M
古い(正しい)バージョンはvimで次のように表示されます:
Heading 1,Heading 2,Heading 3,
Info 1-1,Info 1-2,Info 1-3,
Info 2-1,Info 2-2.Info 2-3,