将csv文件的换行符更改为同一个

时间:2015-10-29 13:21:03

标签: php csv linefeed

我需要使用csv文件。我想写一个使用csv文件的Web应用程序,用PHP编写。 问题是所有csv文件都有不同的换行/ r,/ n,/ r / n /。 我需要在所有这些中拥有相同的东西。 直到现在我这样做:

exec("sed -i 's/\r$//' files/uploads/$fileName"); // DOS to Unix
exec("sed -i 's/$/\r/' files/uploads/$fileName"); // Unix to DOS

最后所有人都有/ r / n。 但是,如果我得到一个带/ r作为换行符的csv文件,该怎么处理呢?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

你在php中有很多选择。例如:

$f=file_get_contents("files/uploads/$fileName");
$f=str_replace("\r","",$f);
file_put_contents("files/uploads/$filename",$f);

这将从输入中删除所有RETURN字符(" \ r"),并使用换行符将文件写回(" \ n")。

我还没有看到只有" \ r"的CSV /电子表格文件字符,但假设你也可以这样做:str_replace(" \ r"," \ n")然后减少" \ n \ n"到单个" \ n" (再次使用str_replace)。

还有一个基于REGEX的解决方案,但今天早上我脑部的正则表达部分有点油炸。