如何在CSV文件中使用换行符?

时间:2011-09-12 19:26:30

标签: php excel csv

我有一个excel文件,我将其转换为CSV,因此可以在PHP中进行解析。但是,出于某种原因,excel中的单元格只有回车符(\ r)而没有换行符(\ n)。我需要在csv中使用换行符,否则PHP会在一行中解析所有内容,而不应该这样做。

有没有办法在excel / csv文件中添加换行符?

谢谢!

编辑:好像我将文件导出为错误的csv - 我没有将Windows逗号分隔。谢谢你的回答。

2 个答案:

答案 0 :(得分:2)

有很多方法可以处理它。 PHP中的一个简单方法是在处理之前将\r替换为\n

// 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);

答案 1 :(得分:2)

在阅读CSV文件之前,请执行以下操作:

ini_set('auto_detect_line_endings', true);

然后在阅读文件后立即将其设置为false

来自manual

  

这使PHP能够与Macintosh系统互操作,但默认设置   关闭,因为检测时性能损失非常小   第一行的EOL约定,也因为人们使用   在Unix系统下作为项目分隔符的回车符   体验非向后兼容的行为。