我有一個excel文件,我轉換爲CSV,因此它可以在PHP中解析。但是,由於某些原因,excel中的單元格只有回車符(\ r)並且沒有換行符(\ n)。我需要在csv中換行,否則PHP會在一行中解析所有內容,不應該這樣做。如何在CSV文件中使用換行符?
有沒有辦法將換行符添加到excel/csv文件?
謝謝!
編輯:它看起來好像我導出文件爲錯誤的CSV - 我沒有做Windows逗號分隔。謝謝你們的答案。
我有一個excel文件,我轉換爲CSV,因此它可以在PHP中解析。但是,由於某些原因,excel中的單元格只有回車符(\ r)並且沒有換行符(\ n)。我需要在csv中換行,否則PHP會在一行中解析所有內容,不應該這樣做。如何在CSV文件中使用換行符?
有沒有辦法將換行符添加到excel/csv文件?
謝謝!
編輯:它看起來好像我導出文件爲錯誤的CSV - 我沒有做Windows逗號分隔。謝謝你們的答案。
之前,你在你的CSV文件讀取,執行:
ini_set('auto_detect_line_endings', true);
然後閱讀後立即設置爲false
文件。
從manual:
這使得PHP可以和Macintosh系統交互操作,但是默認 爲關閉,因爲有一個很小的性能損失檢測的第一線 的EOL習慣時,也因爲在Unix系統下使用 carriage-returns作爲項目分隔符的人會遇到非向後兼容的行爲。
有很多方法可以處理它。一個容易在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);
如何在解析文件/內容前用'\ n'替換所有'\ r'? – Shef
它不應該是這樣。我只是使用Excel來導出一個CSV文件,它的行被換行符隔開。 – Ofir
你如何將Excel文件轉換爲CSV? – amaidment