Функция php fgetcsv не работает для строки есть \

У меня есть данные в phpmyadmin, например: (первая строка - заголовок)

||from||to||messages||

||john||andy||meeting now||

||dony||sherly||Place in \"Jakarta\" , Indonesia, 15412

когда я экспортирую в csv через phpmyadmin версии 3.5.6, я получаю этот файл csv:

"from","to","messages"

"john","andy","meeting now"

"from","to","Place in \""Jakarta\"" , Indonesia, 15412"

если я использую этот код

<?php
// code start 

$file = fopen($path, 'r');

while (($line = fgetcsv($file)) !== FALSE) {

print_r($line);

}

fclose($file);

// code end
?>

Я надеюсь получить это

//output start

Array

(

[0] => from

[1] => to

[2] => messages

)

Array

(

[0] => john

[1] => andy

[2] => meeting now

)

Array

(

[0] => dony

[1] => sherly

[2] => Place in \"Jakarta\" , Indonesia, 15412

)

//output end

но вместо этого я получаю

//output start

Array

(

[0] => from

[1] => to

[2] => messages

)

Array

(

[0] => john

[1] => andy

[2] => meeting now

)

Array

(

[0] => from

[1] => to

[2] => Place in \"Jakarta\"" 

[3] =>  Indonesia

[4] =>  15412"

)

//output end

кто-нибудь может помочь с этой ошибкой?


person user2265766    schedule 10.04.2013    source источник
comment
Посмотрите на аргумент $escape для функции fgetcsv() — php.net/manual /en/function.fgetcsv.php   -  person Mark Baker    schedule 10.04.2013
comment
Также, возможно, в аргументе $enclosure - php.net/manual/en/function.fgetcsv.php   -  person Havelock    schedule 10.04.2013
comment
Вы пробовали stripslashes($line).. ??   -  person Hiren Pandya    schedule 10.04.2013


Ответы (1)


У вас есть двойные двойные кавычки.

"from","to","Place in \""Jakarta\"" , Indonesia, 15412"

должно быть

"from","to","Place in \"Jakarta\" , Indonesia, 15412"
person Niek van der Steen    schedule 10.04.2013