我有一个CSV,我从一个我无法控制的来源下载,每行的结尾都是
^M
打印到bash终端时的字符。如何在PHP中以编程方式清理此输入?
答案 0 :(得分:17)
您所看到的是Windows控制角色。要在PHP中摆脱这种情况,您需要做的是
$file = str_ireplace("\x0D", "", $file)
这将起作用,无论十六进制是小写还是大写。
答案 1 :(得分:3)
^M
是carriage return,你应该可以删除它:
$string = str_replace( "\r", "", $string);
答案 2 :(得分:3)
您还可以让PHP自动检测任何奇怪的行结尾,只需在读取CSV文件之前添加此行,您就不需要执行任何其他操作。
ini_set('auto_detect_line_endings', true);