2012-10-22 160 views
2

我构建了一个应用程序,它将CSV作为批量供稿,并且在保存为“Windows逗号分隔”和保存为“逗号分隔”时注意到了CSV中的差异在Mac上的Excel中。我的脚本只能解析Windows版本,我看不到如何在代码中解决这个问题。解析Windows CSV与普通CSV

我发现,他们中的台词回报是不同的:http://cl.ly/image/3x463O3b0A1s

这里是Mac的Excel中的文件类型列表:http://cl.ly/image/2F110Q1X0V0i

我爆发成线,像这样:

$lines = explode("\n", $content); 

使用常规的CSV,它不能识别任何行,但是使用Windows版本,它按预期工作(去图!)。我该如何解决?

+0

为什么使用爆炸,有内置的csv处理函数。 str_getcsv(),fgetcsv() – 2012-10-22 20:55:53

回答

3

正如前面提到的,你应该使用fgetcsv() ...但是,我仍然有使用该功能在Mac上生成CSV的问题。

PHP没有正确检测行尾。为了解决这个问题,我不得不将ini_set("auto_detect_line_endings", true);添加到正在处理CSV文件的函数中。

+0

对我很好,谢谢! – user387049

0

正如评论指出,使用本机PHP函数:fgetcsv()str_getcsv()

+0

downvoter是否在意分享? –

+0

我在爆炸后使用它来更好地修复我的其他代码;在$ lines循环中。 –