2012-10-22 100 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循環中。 –