管理していないソースからダウンロードしているCSVがあり、各行の終わりは
^M
bash端末に印刷されたときの文字。PHPでこの入力をプログラムでサニタイズするにはどうすればよいですか?
表示されているのはWindowsの制御文字です。PHPでこれを取り除くには、
$file = str_ireplace("\x0D", "", $file)
16進数が小文字でも大文字でも、これが機能するようにする必要があります。
また、CSVファイルを読み取る前にこの行を追加するだけで、PHPに奇妙な行末を自動検出するように依頼することもでき、他に何もする必要はありません。
ini_set('auto_detect_line_endings', true);
^M
はキャリッジリターンです。次の方法で削除できるはずです。
$string = str_replace( "\r", "", $string);