От автора: приветствую Вас дорогой друг. Интернет магазины в данное время очень популярны, а значит достаточно часто веб-мастера, занимаются разработкой сайтов именно этого типа. При этом любой магазин, конечно же, предполагает публикацию множества различных товаров, добавить которые вручную порой становится непосильной задачей. Потому как ее выполнение, требует огромного количества времени.
Поэтому если необходимо добавить большое количество товаров владельцы магазинов используют специальные скрипты по импорту, которые в считанные секунды или же минуты добавят в магазин несколько тысяч товаров. Конечно, разрабатываемый магазин должен поддерживать скрипты подобного рода.
Для всех современных CMS, которые используются для создания магазинов, написаны дополнительные модули или расширения по импорту/экспорту товаров, которые могут быть как встроенными, так и поставляться отдельно на платной или бесплатной основе. Но для самописного движка интернет магазина вышеуказанный функционал придется описывать самостоятельно. Поэтому в данном уроке мы с Вами напишем небольшое веб-приложение, которое реализует импорт товаров CSV.
Конечно, создаваемый скрипт будет не сложен и по сути не будет привязываться к реальному движку, потому как у каждого из Вас различные задачи и показать создание универсального инструмента в рамках парочки уроков просто невозможно. Я хотел бы рассмотреть принцип импорта товаров, то есть, что бы Вы увидели, как это можно сделать, и возможно это поможет Вам в решении некоторой реальной задачи.
Итак, в данном уроке мы будем рассматривать импорт товаров в формате CSV, то есть вся информация о добавляемых товарах будет содержаться в специальном файле с расширением .csv.
Формат CSV – это простой текстовый формат, предназначенный для представления различных табличных данных. То есть благодаря ему, сложная таблица может быть сохранена в виде простого текста, с специфическим форматированием. CSV – это аббревиатура, образованная английскими словами — Comma-Separated Values — значения, разделённые запятыми. Синтаксис указанного формата предполагает, что каждая строка файла – это одна строка таблицы. Данные, которые хранятся в колонках, разделены друг от друга знаком запятой (,).
Но согласитесь, что запятая – это символ, который конечно же может встречаться в тексте, в качестве знака пунктуации, поэтому на практике, часто используют в качестве разделителей другие знаки, к примеру – точка с запятой (;), что собственно мы с Вами и сделаем. В этом случае, правильно бы назвать формат – DSV (delimiter-separated values — значения разделённые разделителем), но на сегодняшний день под понятием CSV – понимают набор определенных текстовых значений разделенных определенным разделителем.
Как было сказано выше, создавать скрипт мы будем с чистого листа и по сути реализуем считывание данных документа CSV и запись полученной информации в таблицу “products” базы данных.
Структура таблицы следующая:
Формат CSV очень легко получить, используя в качестве исходной таблицы – таблицу Microsoft Excel. Конечно, Вы можете спросить – зачем преобразовывать таблицу в специальный формат, если можно осуществить импорт, читая содержимое каждой ячейки таблицы. И по большому счету — Да, мы можем это сделать. Но при этом придется использовать дополнительную библиотеку по работе с документами Excel. В свою очередь формат CSV – простой текстовый формат, который легко и быстро читается языком PHP, без каких либо дополнительных инструментов.
Теперь предположим, что поставщик передал нам следующий документ с информацией о доступных товарах:
Как Вы видите каждая строка таблицы – это отдельный товар. При этом в колонках, располагается информация, которая должна быть сохранена в соответствующие поля таблицы “products”.
Теперь давайте преобразуем данную таблицу в формат CSV, для этого переходим в меню “Файл”, далее выбираем пункт “Сохранить как”.
Затем при сохранении выбираем формат CSV (разделители-запятые).
Обратите внимание, что файл будет сохранен в кодировке Windows-1251, поэтому для дальнейшей работы необходимо сменить кодировку на UTF-8. Теперь можно приступать к созданию функционала будущего скрипта.
В данной части мы с Вами реализуем общую файловую структуру приложения, создадим глобальную точку входа и функцию автоматической загрузки классов, а так же опишем класс, который выполнит чтение документа формата CSV и вернет полученную информацию в виде многомерного массива, работать с которым мы будем на следующем уроке. Соответственно, как реализовать вышеуказанный функционал, детально показано в видео версии текущего урока.
Поэтому текстовая версия завершена, а значит жду Вас в видео. Всего Вам доброго и удачного кодирования!!!