fgetcsv возвращает лишние кавычки

grey109

Новичок
Приветствую всех!


Не могу понять, почему при разборе csv-файла, появляются лишние кавычки:
PHP:
$fp = fopen ("1.csv", "r");
$data = fgetcsv ($fp, 0, ";");
echo $data[0];
Файл 1.csv состоит из одной строки:
"\""test\"""

Скрипт возвращает
\"test\"""

а должен
\"test\"


Баг или я туплю?

PHP версии 5.3.27, проверил на 5.4.45 - тоже самое. Дальше обновить не могу.
 

WMix

герр M:)ller
Партнер клуба
"\""test\""" не правильный csv
для этих данных \"test\" должен быть такой "\"test\""
 

grey109

Новичок
Так делает экспорт MS Office 2002...2010.
И если верить википедии - делает он верно:
Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными кавычками ("). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд.
Так что дело не в этом.
 

fixxxer

К.О.
Партнер клуба
виноват 5й аргумент escape
передай туда что-нибудь типа \x00
 

WMix

герр M:)ller
Партнер клуба
Код:
╭─wmix@wmix  ~/test
╰─$ cat 1.csv                                                                                                                                                           130 ↵
"\""test\"""
╭─wmix@wmix  ~/test
╰─$ php -a
Interactive mode enabled

php > $fp = fopen ("1.csv", "r");
php > $data = fgetcsv ($fp, 0, ";", '"', '"');
php > print_r($data);
Array
(
    [0] => \"test\"
)
php >
В общем-то баг,
если только потому что ошибку не кидает
 
Сверху