2014-12-08 1 views
0

Проблема с обратным слэшем (\") при выполнении этого примера импорта csv.Проблема с обратным слэшем ( ") с fgetcsv() при импорте файла csv в php

здесь мои 2 входные строки из CSV

"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:00 утра, "Trashes", "е: \"

с этим кодом, я получаю выход (редактировать массив), как показано ниже,

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

что вы пробовали до сих пор, чтобы решить эту проблему? Если вы считаете, что это из-за '\' ', почему вы не пытаетесь избежать этого? Вместо использования' print_r' для отладки используйте 'var_dump' –

+0

@RonniSkansing Да, я попробовал ускользнуть с этим кодом, в то время как (($ csv_data = fgetcsv ($ handle, 0, ',', '"', '\\'))! == FALSE) {}, но, похоже, тоже не работает. –

ответ

2

Вы можете попытаться использовать двойную кавычку как символ эвакуации.

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

Но вы должны быть уверены, что у вас нет двойных кавычек внутри ваших полей.

+0

Ничего себе .. кажется, он отлично работает .. Спасибо –