Разбор CSV в MYSQL - PullRequest
       7

Разбор CSV в MYSQL

2 голосов
/ 12 июля 2010

Я пытаюсь проанализировать файл .csv в базе данных mysql, и это не весело.

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

"Значение", Значение, "Значение3", "Значение, Значение"

А некоторые выглядят так:

Значение, Значение,, Значение,, Значение

Этот preg_split работал хорошо, за исключением полей, которые были пустыми:

foreach ($row as $item) {
     $item = preg_split( "/[,]*\\\"([^\\\"]+)\\\"[,]*|[,]+/", $item, 0, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
}

Когда я удалил «PREG_SPLIT_NO_EMPTY», я получил дополнительное пустое значение, добавленное в конце $ item Есть ли выражение регулярного выражения, которое будет работать для этого?

1 Ответ

8 голосов
/ 12 июля 2010

Почему бы не использовать LOAD DATA INFILE

В качестве альтернативы использовать встроенные в PHP функции fgetcsv () или str_getcsv () вместо того, чтобы возитьсяо с помощью регулярных выражений пытается изобрести колесо

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