让我们看看我在csv字符串中有这个(从cURL输出中获取):
"name";"gender";"address";"phone";\n
"John Doe"; "Male"; "Broke Street\n No. 69 South Pole";"911";\n
类似的东西,我使用explode逐行获取,但是有一个字段也使用\ n用于新行,从而弄乱了我的数组索引。我怎么能解决这个问题呢?
答案 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分隔符以获取每一行。
我想这对我现在有用。