Імпорт товарів у форматі CSV. Частина 1

35

Від автора: вітаю Вас, дорогий друже. Інтернет магазини в даний час дуже популярні, а значить досить часто веб-майстри, що займаються розробкою сайтів саме цього типу. При цьому будь-який магазин, звичайно ж, передбачає публікацію безлічі товарів, які вручну додати часом стає непосильним завданням. Тому як її виконання, вимагає величезної кількості часу.

скачать исходникискачать урок

Тому якщо необхідно додати велику кількість товарів власники магазинів використовують спеціальні скрипти з імпорту, які в лічені секунди чи хвилини додадуть в магазин декілька тисяч товарів. Звичайно, що розробляється магазин повинен підтримувати скрипти подібного роду.

Для всіх сучасних CMS, які використовуються для створення магазинів, написані додаткові модулі або розширення за імпортом/експортом товарів, які можуть бути як вбудованими, так і поставлятися окремо на платній або безкоштовній основі. Але для самопісного движка інтернет магазину вищевказаний функціонал доведеться описувати самостійно. Тому в даному уроці ми з Вами напишемо невелику веб-додаток, який реалізує імпорт товарів CSV.

Звичайно, створюваний скрипт буде не складний і по суті не буде прив’язуватися до реального движку, бо у кожного з Вас різні завдання і показати створення універсального інструменту в рамках парочки уроків просто неможливо. Я хотів би розглянути принцип імпорту товарів, тобто, що б Ви побачили, як це можна зробити, і можливо це допоможе Вам в вирішенні деякої реальної задачі.

Отже, у даному уроці ми будемо розглядати імпорт товарів у форматі CSV, тобто вся інформація про товари, додані буде міститися в спеціальному файлі з розширенням .csv.

Формат CSV – це простий текстовий формат, призначений для представлення різних табличних даних. Тобто завдяки йому, складна таблиця може бути збережена у вигляді простого тексту, з специфічним форматуванням. CSV – це абревіатура, утворена англійськими словами — Comma-Separated Values (значення, розділені комами. Синтаксис зазначеного формату передбачає, що кожен рядок файлу – це один рядок таблиці. Дані, які зберігаються в колонках, розділені один від одного знаком комою (,).

Але погодьтеся, що кома – це символ, який звичайно може зустрічатися в тексті, у якості розділового знаку, тому на практиці часто використовують в якості роздільників інші знаки, наприклад, крапка з комою (;), що власне ми з Вами і зробимо. У цьому випадку, правильно б назвати формат – DSV (delimiter-separated values — значення розділені роздільником), але на сьогоднішній день під поняттям CSV – розуміють набір певних текстових значень розділених певним роздільником.

Як було сказано вище, створювати скрипт ми будемо з чистого аркуша і по суті реалізуємо зчитування даних документа CSV і запис отриманої інформації в таблицю «products» бази даних.

Структура таблиці наступна:

Импорт товаров в формате CSV

Формат CSV дуже легко отримати, використовуючи в якості вихідної таблиці – таблиці Microsoft Excel. Звичайно, Ви можете запитати – навіщо перетворювати її в спеціальний формат, якщо можна здійснити імпорт, читаючи вміст кожної комірки таблиці. І за великим рахунком — Так, ми можемо це зробити. Але при цьому доведеться використовувати додаткову бібліотеки по роботі з документами Excel. У свою чергу формат CSV – простий текстовий формат, який легко і швидко читається мовою PHP, без яких-небудь додаткових інструментів.

Тепер припустимо, що постачальник передав нам наступний документ з інформацією про наявні товари:

Импорт товаров в формате CSV

Як Ви бачите кожен рядок таблиці – це окремий товар. При цьому у колонках, розташовується інформація, яка повинна бути збережена у відповідні поля таблиці «товари».

Тепер давайте перетворимо дану таблицю у формат CSV, для цього переходимо в меню «Файл», далі вибираємо пункт «Зберегти як».

Импорт товаров в формате CSV

Потім при збереженні вибираємо формат CSV (значення, розділені комами).

Импорт товаров в формате CSV

Зверніть увагу, що файл буде збережений в кодуванні Windows-1251, тому для подальшої роботи необхідно змінити кодування на UTF-8. Тепер можна приступати до створення функціоналу майбутнього сценарію.

У цій частині ми з Вами реалізуємо спільну файлову структуру програми, створимо глобальну точку входу і функцію автоматичного завантаження класів, а так само опишемо клас, який виконає читання документа формату CSV і поверне отриману інформацію у вигляді багатовимірного масиву, працювати з яким ми будемо на наступному уроці. Відповідно, як реалізувати вищевказаний функціонал, детально показано у відео версії поточного уроку.

Тому текстова версія завершена, а значить чекаю Вас у відео. Всього Вам доброго і вдалого кодування!!!