我有一个excel文件,我将其转换为CSV,因此可以在PHP中进行解析。但是,出于某种原因,excel中的单元格只有回车符(\ r)而没有换行符(\ n)。我需要在csv中使用换行符,否则PHP会在一行中解析所有内容,而不应该这样做。
有没有办法在excel / csv文件中添加换行符?
谢谢!
编辑:好像我将文件导出为错误的csv - 我没有将Windows逗号分隔。谢谢你的回答。答案 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系统下作为项目分隔符的回车符 体验非向后兼容的行为。