Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Проблема с fgetcsv() (двойные кавычки)


Автор: IronKettle 6.2.2012, 15:47
Добрый день, уважаемые форумчане!
Вот уже вторые сутки бьюсь над следующей проблемой:
Необходимо прочесть файл CSV (см. вложение), для этого использую fgetcsv():

Код

$fp=fopen("test.csv",r,true);
while($cols=fgetcsv($fp,65536,","))
 {
      echo "Count cols=".count($cols)."<br>";
 }


Строки, в которых отсутствуют двойные кавычки (") читаются нормально (получаем корректный массив $cols), но если в строке есть хотябы одна кавычка, никакого разбиения не происходит и вся строка помещается в $cols[0]  smile 

Вот результат выполнения:

Count cols=4
Count cols=1
Count cols=1
Count cols=4
Count cols=4
Count cols=1

Может кто сталкивался с подобной проблемой? 
Как корректно прочесть такой файл? (использование explode(), str_replace() и др. не подойдет, т.к. есть вероятность искажения данных)

Большое спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)