【发布时间】:2018-11-23 21:05:19
【问题描述】:
使用 PHP 读取 csv 文件时,CSV 文件中出现换行符问题。一旦逗号后跟换行符,一个单元格的内容将被拆分:
$csv = array_map('str_getcsv', file($file));
first,second,"third,
more,text","forth"
next,dataset
这将导致:
1) first | second | third
2) more text | forth
3) next | dataset
虽然它应该导致:
1) first | second | third more text | forth
2) next | dataset
这是 str_getcsv 中的错误吗?
【问题讨论】:
-
不,这不是
str_getcsv()的错误。这是因为您使用file()来读取文件内容,并且它通过换行符拆分文件。因此,您一次只将一行传递给str_getcsv(),并且无法知道下一行中的特定单元格还有更多内容。 -
如果我没记错的话,str_getcsv 不允许在列数据中换行,因为它首先假定输入字符串是单行。
-
@vshcherbinin nope,
str_getcsv()可以在列数据中使用换行符:3v4l.org/jBL1F