Похоже, у PHP есть проблемы в fgetcsv или str_getcsv с двойными кавычками и экранированием.
Вот простой пример из командной строки:
$ echo '"\"test\""' | php -r '$t=file_get_contents("php://stdin"); print "input: ".$t."\noutput: ".str_getcsv($t)[0];'
результат:
input: "\"test\""output: \"test\"
ожидаемый результат:
input: "\"test\""output: "test"
Я ожидал бы, что выходные данные будут другими, потому что внешние кавычки включают в себя кавычки, а внутренние экранированы. Экранирующий символ не должен переноситься на выход.
Почему PHP интерпретирует это по-другому и что такое надежный обходной путь?
Задача ещё не решена.
Других решений пока нет …