Ошибка анализа данных CSV, когда строка содержит запятую - PullRequest
1 голос
/ 19 августа 2010

Я анализирую канал данных CSV, отправленный мне через php. Я превращаю каждую строку в массив значений.

Вот мой код:

$fp = fopen('data.txt','r');

while (!feof($fp))
{
    $line = mysql_real_escape_string(fgets($fp));

    $value_array = explode(',', $line);
}

Но если одна из строк выглядит так:

"Некоторая компания, инк.", XC34ET, 500

Я получаю 4 значения:

  1. "какая-то компания

  2. вкл ".

  3. XC34ET

  4. 500

Когда я действительно хочу эти 3 значения:

  1. какая-то компания, вкл.

  2. XC34ET

  3. 500

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

Ответы [ 2 ]

4 голосов
/ 19 августа 2010

Существует встроенная функция для разбора файлов CSV: fgetcsv () . Просто замените вызов fgets () на него. Использование «» в качестве значения параметра $ enclosure должно решить вашу проблему.

1 голос
/ 19 августа 2010

Вы можете использовать str_getcsv(), чтобы прочитать строку и проанализировать ее, возвращая массив

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...