在php中导入csv文件时,反斜杠(\“)与fgetcsv()一起出现问题

时间:2014-12-08 06:50:38

标签: php csv fgetcsv

执行csv import这个例子时遇到反斜杠(\“)问题。

这是来自csv

的2条输入行
  

“Travel_and_Work_en.pdf”,840722,3 / 22/2007 10:57 AM,10/10/2007 12:00   AM,10/10/2007 9:00 AM,“。pdf”,“e:\”

     

“._。Trashes”,4096,10 / 12/2010 4:55 PM,12/8/2014 12:00 AM,11/13/2014   凌晨3点,“。Trashes”,“e:\”

使用此代码,我得到输出(编辑过的数组),如下所示,

while (($csv_data = fgetcsv($handle, 0, ',')) !== FALSE) {
    print_r($csv_data );
}

输出

Array (
    [filename] => Travel_and_Work_en.pdf
    [file_size] => 840722
    [modified] => 3/22/2007 10:57 AM
    [accessed] => 10/10/2007 12:00 AM
    [created] => 10/10/2007 9:00 AM
    [extension] => .pdf
    [full_path] => e:\" ._.Trashes"

}

这里的问题是,第二行第一个字段与第一行最后一个字段合并,我认为它最后是\",我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:5)

您可以尝试使用双引号作为转义符号。

while (($csv_data = fgetcsv($handle, 0, ',', '"', '"')) !== FALSE) {
    print_r($csv_data);
}

但是你必须确保你的字段中没有双引号。