Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Игнорируется последнее поле при разборе CSV файла
Категория;"Название товара";Производитель;"Цена товара";"Количество на складе";"Ссылка на фотографию (big)";"Ссылка для покупки товара";"Краткое описание";"Полное описание";"Ссылка на фото (small)";Активность;Идентификатор
Последнее поле с идентификатором не обрабатывается. Если после идентификатора добавить разделитель ";", то есть сделать его не последним стобцом, то данные из него обрабатываются.
Как заставить обрабатывать информацию в последнем столбце?
Покинул форум
Сообщений всего: 22
Дата рег-ции: Янв. 2017 Откуда: Киев, Украина
Помог: 1 раз(а)
я думаю, нужно начать с проверки объекта/массива $data... посмотреть что туда вообще попало из вашего csv-файла, а потом уже смотреть дальше.
и приведите в порядок сам csv-файл, если вы уже используете символ ограничителя поля, в вашем случае "двойная кавычка (универсальная)", то кавычки должны ограничивать все значения.
Evgeniii
Отправлено: 23 Января, 2017 - 12:02:01
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
Привести в порядок csv файл не могу, т.к он скачивается с сервера поставщика.
Возможно ли как-то в конце каждой строки добавлять ; и далее уже обрабатывать измененный файл?
skruglikov
Отправлено: 23 Января, 2017 - 12:30:15
Новичок
Покинул форум
Сообщений всего: 22
Дата рег-ции: Янв. 2017 Откуда: Киев, Украина
Помог: 1 раз(а)
Evgeniii пишет:
Привести в порядок csv файл не могу, т.к он скачивается с сервера поставщика
обработку строк можно сделать сразу после открытия файла, если вы не участвуете в скачивании файла... с помощью регулярных выражений проверить наличие "кавычек", если что добавить их;
Evgeniii пишет:
Возможно ли как-то в конце каждой строки добавлять ; и далее уже обрабатывать измененный файл?
собственно да, опять же, с помощью регулярных выражений проверить наличие "точка с запятой", если что добавить их;
но перед тем как это делать, рекомендую проверить содержимое переменной $data перед строкой №15 вашего кода
Evgeniii
Отправлено: 23 Января, 2017 - 17:05:00
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
skruglikov пишет:
но перед тем как это делать, рекомендую проверить содержимое переменной $data перед строкой №15 вашего кода
Категория;"Название товара";Производитель;"Цена товара";"Количество на складе";"Ссылка на фотографию (big)";"Ссылка для покупки товара";"Краткое описание";"Полное описание";"Ссылка на фото (small)";Активность;Идентификатор
Необходимо что бы в записанном файле после идентификатора присутствовал символ разделителя ; (Добавление)
Предыдущий вопрос решил с помощью array_push
skruglikov
Отправлено: 25 Января, 2017 - 12:40:23
Новичок
Покинул форум
Сообщений всего: 22
Дата рег-ции: Янв. 2017 Откуда: Киев, Украина
Помог: 1 раз(а)
Evgeniii пишет:
Файл читается и записывается, но в конце каждой строки после идентификатора нет разделителя, как мне его добавить при записи?
вам необходимо открыть файл fopen, с помощью цикла пробежать по строкам, причем строка вы возвращаете в переменную И добавляете ваш разделитель ";", выглядит примерно так:
но вообще ничего в конец добавлять не нужно... вам в основном коде нужно найти строку, где происходит обработка Идентификатора и проверить там переменные! ведь у вас в массиве $data все данные есть, ну на сколько я понял...
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.