Как вы EXPLODE CSV строки с запятой в значении? - PullRequest
4 голосов
/ 10 ноября 2011
"AMZN","Amazon.com, Inc.",211.22,"11/9/2011","4:00pm","-6.77 - -3.11%",4673052

Amazon.com, Inc. рассматривается как 2 значения вместо одного.

Я пробовал это $data = explode( ',', $s);

Как мне изменить это, чтобы избежать запятой в вопросе значения?

Ответы [ 2 ]

8 голосов
/ 10 ноября 2011

Вероятно, вам следует заглянуть в str_getcsv () (или fgetcsv () , если вы загружаете CSV из файла)

Это будет считывать содержимое CSV в массив без необходимости взрыва и т. Д.

Правка - чтобы раскрыть точку зрения Пекки, если вы используете PHP <5.3 <code>str_getcsv(), не будет работать, но есть интересный подход здесь , который воспроизводит функциональность для более мелких версий. И еще один подход здесь , который использует fgetcsv() после создания временного файла.

0 голосов
/ 10 ноября 2011

Используйте выделенную библиотеку CSV. Снова и снова объясняется, что синтаксический анализ форматов файлов, таких как CSV, вручную создает проблемы, потому что вы не знаете всех вариантов CSV и всех правил, чтобы сделать это правильно.

...