2011-09-12 64 views
0

我有一個excel文件,我轉換爲CSV,因此它可以在PHP中解析。但是,由於某些原因,excel中的單元格只有回車符(\ r)並且沒有換行符(\ n)。我需要在csv中換行,否則PHP會在一行中解析所有內容,不應該這樣做。如何在CSV文件中使用換行符?

有沒有辦法將換行符添加到excel/csv文件?

謝謝!

編輯:它看起來好像我導出文件爲錯誤的CSV - 我沒有做Windows逗號分隔。謝謝你們的答案。

+0

如何在解析文件/內容前用'\ n'替換所有'\ r'? – Shef

+0

它不應該是這樣。我只是使用Excel來導出一個CSV文件,它的行被換行符隔開。 – Ofir

+0

你如何將Excel文件轉換爲CSV? – amaidment

回答

2

之前,你在你的CSV文件讀取,執行:

ini_set('auto_detect_line_endings', true); 

然後閱讀後立即設置爲false文件。

manual

這使得PHP可以和Macintosh系統交互操作,但是默認 爲關閉,因爲有一個很小的性能損失檢測的第一線 的EOL習慣時,也因爲在Unix系統下使用 carriage-returns作爲項目分隔符的人會遇到非向後兼容的行爲。

2

有很多方法可以處理它。一個容易在PHP將處理它之前\n只需更換\r

// Load the whole data file as a string 
$data = file_get_contents("yourcsv.csv"); 
$data = str_replace("\r","\n", $data); 

// use str_getcsv() in PHP 5.3+ to parse it to an array 
$csv_array = str_getcsv($data); 
相關問題