【发布时间】:2011-07-25 04:01:02
【问题描述】:
我正在使用 PHP 导入一个 CSV 文件,该文件源自一个 excel 电子表格。某些字段中包含换行符,因此当我在 excel/open office 电子表格中重新打开 csv 时,它会误解应该在哪里发生换行符。
同样在我的脚本中,使用 fgetcsv 遍历每一行,它在不应该出现的地方错误地换行。
我可以手动清理数据,但是 a) 10k 行文件需要很长时间,b) 数据是从客户现有的软件中导出的
关于如何在导入过程中自动解决此问题的任何想法?我原以为分隔字段会对其进行排序,但事实并非如此。
【问题讨论】:
-
只要带换行符的字段被引用
"foo\nbar",列对齐不应该受到影响 -
LF 在 CSV 字段中应编码为
\n。您将需要一个自定义阅读器来撤消该出口损坏。查看php.net/fgetcsv,但您可能需要搜索或写一个。 -
xzyfer,该解决方案不起作用,因为我需要能够从文件指针的特定行开始,因为将整个 15mb csv 加载到生产服务器上的字符串中是行不通的 :(不过还是谢谢
标签: php csv import line-breaks