| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Правильно бработать CSV файл |
| Автор: Rusman 25.6.2010, 07:59 | ||
| Здравствуйте! Делаю обработку файла CSV, данные заношу в БД.
проблема в следующем. Если встретиться в переменной разделитель(;) то получается не правильно обработается. Как решить этот вопрос? |
| Автор: skyboy 25.6.2010, 08:33 |
| приведи пример. а то пока можно только догадываться, что, наверное, ты имеешь в виду ситуацию, когда символ-разделитель встречается внутри отдельного поля и не должен обрабатываться как разделитель(если это так, то все равно приведи пример, потому что неясно - по каким признакам - кавычки вокруг, минимальная длина поля, прочее - ты, как человек, отличаешь разделитель от "не-разделителя") |
| Автор: Rusman 25.6.2010, 09:01 |
| Структура: Артикул;Название;Описание;Цена Пример csv файла: `ART J09567`;`Детский электромобиль-квадроцикл Tornado II. TCV-636`;`<span style="color:grey;">Очень красивый, многофункциональный квадроцикл. Несколько скоростей, зеркала заднего вида, закрытый низ корпуса.</span>Характеристики: предназначен для детей 3-8 лет; `;`15000` Видите в описании два разва встречается знак ; (точка с запятой) Скрипт примет ее как разделитель |
| Автор: ksnk 25.6.2010, 09:04 |
| Rusman, Видите, все поля этой csv строчки взяты в кавычки? |
| Автор: MoLeX 25.6.2010, 09:05 |
| используй вместе с апострофами `;` |
| Автор: ksnk 25.6.2010, 09:09 | ||
обратить внимание на параметр enclosure |
| Автор: Sanchezzz 25.6.2010, 09:19 | ||
Может пригодится ) |
| Автор: Rusman 25.6.2010, 09:23 |
| MoLeX, так не получается Добавлено через 10 минут и 39 секунд ksnk, спасибо! оказалось все просто )) указать ограничитель поля и все ) |
| Автор: skyboy 25.6.2010, 11:02 | ||
MoLeX, к сожалению,
хотя в некоторых случаях(к примеру, некорректный с точки зрения оформления CSV, файл, в котором разделителями служит несколько подряд идущих пробелов) хотелось бы использовать fgetcsv вместо preg_split Добавлено через 1 минуту и 16 секунд не ставлю целью обидеть, но ведь описания параметров в мануале приведены практически сразу же. стоило ли ждать на форуме ответа 4 часа вместо того, чтоб 3 минуты почитать мануал? |