PHP读取csv字段在字段中包含新行

时间:2012-09-03 03:10:03

标签: php csv newline

让我们看看我在csv字符串中有这个(从cURL输出中获取):

"name";"gender";"address";"phone";\n
"John Doe"; "Male"; "Broke Street\n No. 69 South Pole";"911";\n

类似的东西,我使用explode逐行获取,但是有一个字段也使用\ n用于新行,从而弄乱了我的数组索引。我怎么能解决这个问题呢?

3 个答案:

答案 0 :(得分:2)

在这种情况下,这是一个严重生成/损坏的.csv。如果一个字段包含换行符,那么它应该被"包围,这样csv解析器就可以告诉除了换行符之外的换行符,而不是换行符。分开新线。

解决生成csv的问题,而不是试图处理它吐出的垃圾。

答案 1 :(得分:0)

在你的情况下,这是一个格式错误的csv。

实际上你可以使用preg_match_all来解析那个文件,而不用关心它是否是一个csv。

例如:preg_match('#([^;] +);([^;] +);([^;] +);([^;] +)\ s?#',$ csv_file_content,$火柴);

答案 2 :(得分:0)

Atm我使用str_replace将'“; \ n'替换为'”; #n'或其他你喜欢的东西,并使用explode来分割#n分隔符以获取每一行。

我想这对我现在有用。