Как избежать использования параметра $ escape в функциях fgetcsv / fputcsv

Я не уверен, что может быть хорошим параметром.

array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]]] )

Значением по умолчанию является обратная косая черта. Спецификация CSV не нуждается в escape-символе. Символ вложенности в значении удваивается, и разделители или символы новой строки не создают проблем при заключении значения. У меня есть такая строка в файле CSV:

"value1 can contain qoutes like this (""), comma (,) and
new line","value2\"" contains desired backslash, quote and later comma.","value3 is simple"

Результат нежелателен. Принудительное использование escape-символа в последнем параметре прерывает чтение этой строки и выдает 4 значения вместо 3. Обратная косая черта в value2 будет сгребать первую кавычку, а вторая кавычка считается включающим символом. Затем последующая кома работает как разделитель нежелательных предметов.

Как я могу избежать использования escape-символов? Передача пустой строки вызывает предупреждение «Один символ должен быть передан». Передача какого-либо невероятного символа поможет (доказано), но это ненадежно, когда я работаю с более многоязычным 8-битным кодированием (windows-1250, windows-1252, windows-1256 и т. Д.)

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector