Доброго времени!
Столкнулся со странностью при чтении файла функцией fgetcsv.
Опишу подробнее.
Есть сгенерированный командой openfiles список открытых файлов в формате csv с разделением значений запятой и ограничением данных двойными кавычками.
Он прекрасно парситься функцией fgetcsv. НО как только встречается строка вида:
"2952807424","teo","Windows","D:\Data\MOW\RF-UnitRuMow\"
то \" парситься как экранированная двойная кавычка и на выходе получается такая строка:
D:\Data\MOW\RF-UnitRuMow\" 2885833728"
и естественно "съедается" перенос строки (он попадает внутрь строки и съедается).
Игрался с параметрами:
php_flag magic_quotes_gpc off
php_flag magic_quotes_runtime off
php_flag magic_quotes_sybase off
ничего не меняется... phpinfo() показывает что локально эти настройки меняются, но ничего в логике не меняется.
Не знаю уже в какую сторону копать. Есть конечно мысль свою функцию написать ибо это не так сложно, но хочется понять можно-ли этот косяк исправить?
Спасибо!
1. Programir - 24 Августа, 2015 - 17:26:57 - перейти к сообщению
2. DelphinPRO - 24 Августа, 2015 - 18:00:47 - перейти к сообщению
строка должна быть такая
"2952807424","teo","Windows","D:\\Data\\MOW\\RF-UnitRuMow\\"
она спарсится. хотя openfiles не блещет настройками..
в частном случае можно поменять символ экранирования, на другой. Последний параметр функции fgetcsv.
"2952807424","teo","Windows","D:\\Data\\MOW\\RF-UnitRuMow\\"
она спарсится. хотя openfiles не блещет настройками..
в частном случае можно поменять символ экранирования, на другой. Последний параметр функции fgetcsv.
3. Programir - 25 Августа, 2015 - 09:56:12 - перейти к сообщению
DelphinPRO пишет:
строка должна быть такая
"2952807424","teo","Windows","D:\\Data\\MOW\\RF-UnitRuMow\\"
она спарсится. хотя openfiles не блещет настройками..
в частном случае можно поменять символ экранирования, на другой. Последний параметр функции fgetcsv.
"2952807424","teo","Windows","D:\\Data\\MOW\\RF-UnitRuMow\\"
она спарсится. хотя openfiles не блещет настройками..
в частном случае можно поменять символ экранирования, на другой. Последний параметр функции fgetcsv.
О! Спасибо за подсказку! С изменённым символом экранирования все заработало!
Не видел раньше этого параметра...
ЗЫ Как поставить спасибо если недостаточно сообщений?