2013-03-15 3 views
0
Title,"First name","Middle name","Last name","address" 
Mr.,"prince","M","Kachhadiya","A-42,AdarshNagar-2
 c.g Road,
" 

поле Адрес имеют значение как «А-42, AdarshNagar-2 ChhpraBhatha Road,» это значение имеет запятая (,) между ними и поле CSV-файл по умолчанию разделитель запятая (,), поэтому он примет A-42 и AdarshNagar-2 cg Road как другое значение поля. Как я могу решить проблему?нокиа вопрос импорта CSV-файл в PHP

Мои Php Код:

while (($data = fgetcsv($handle, 0, ",")) !== FALSE) { 
     // Code for parse csv data 
} 
+0

Ваш тест отлично подходит для меня. Запятые находятся внутри строки с кавычками, поэтому это не должно быть проблемой. – Travesty3

ответ

0
Title,"First name","Middle name","Last name","address" 
Mr.,"prince","M","Kachhadiya","A-42,AdarshNagar-2 c.g Road," 

//You can't split the strings using CSV functions so better do some manual work 

//All csv values are quoted with double quotes so split the string like this 

//**If file size is minimum use this function** 

$data = file_get_contents('<file_path>'); 

$parsed_string = explode('",', $data); 

$cnt = count($parsed_string); 

for($i=0; $i<$cnt; $i++) 
{ 
    $value = substr($parsed_string,1); 
} 

//**If file size is maximum use this** 

$file = fopen("<file path>","r"); 

while(! feof($file)) 
    { 
    $data = fgets($file); 

    $parsed_string = explode('",', $data); 

    $cnt = count($parsed_string); 

    for($i=0; $i<$cnt; $i++) 
    { 

     $value = substr($parsed_string,1); 
    } 
    } 

fclose($file);