Вы здесь
Главная > Мой блог > WEB-разработка > Чтение и запись в CSV на PHP

Чтение и запись в CSV на PHP

Обычно если стоимость создания интернет магазина достаточно высока, заказчики просят сделать импорт товаров из их прайс листов. Им необходимо чтобы была возможность не только добавлять новый товар на сайт, но и обновлять цены и количество на складе уже существующих товаров.

PHP как известно не умеет работать excel-файлами стандартными средствами. Конечно есть множество различных классов, которые могут читать и записывать информацию в excel, но с ними возникает достаточно много проблем (об этом мы напишем в следующих статьях).

Куда проще и удобней работать с csv-файлами.

Для примера сделаем небольшую программку. Она будет обрабатывать csv-файл сотрудников компании OX2.ru.

Создадим новую таблицу в Excel, содержащую следующие поля:

Чтение и запись в CSV на PHP

Сохраним таблицу как csv-файл, с разделителем поля «;».

У нас должен получиться такой файл:

Ниже приведен исходный код с подробным описанием.

Код слелан на ООП с использованием классов, и при небольшой доработки может многократно использоваться в различных приложениях. Если вы не привыкли к программированию на классах, а используете функции или еще что-то, то настоятельно рекомендуем переучиваться ))

Так же в коде используется генерация исключений (Exception), о них читайте в следующих наших статьях.

 

Основную работу с CSV файлами на себя берет класс CSV , Он имеет следующие методы:

setCSV(Array $csv) – записывает данные в csv-файл. Данные должны быть переданы массивом. Метод может дозаписывать csv файл, и создавать новый (читайте в описании).

Метод getCSV читает данные из csv файла, и возвращает двумерный массив следующего вида:

Пример достаточно простой, несмотря на то что получилось достаточно много кода.

Скачать исходник

И дальше с помощью цикла foreach обходим массив, и выводим в красивом виде содержимое csv файла.

Импорт данных из csv файлов будет полезен не только для обновление товаров в интернет-магазинах, но и для подгрузки/обновлении какой-либо информации на обычный сайт.

Например, мы разрабатывали сайт управляющей компании, и им требовалось ежемесячно публиковать информацию по счетчикам горячей и холодной воды. Все данные у них храняться в excel файлах. И тут прекрасно подошел csv формат!

При этом стоимость создания сайта останется не изменой, а функционал и автоматизация сайта будет на уровень выше чем у конкурентов.

Источник: http://blog.ox2.ru

One thought on “Чтение и запись в CSV на PHP

  1. Подскажите как отредактировать ячейку или столбец в csv файле? средствами php

    Есть csv файл с 6 строк скажем

    id,найменование,цена,количество,сума

    1,ложка,34,2,32
    2,кружка,23,4,66
    3,тарелка,45,6,352
    4.вилка,21,3,235

    скажем как перезаписать суму 34*2=

    $cart = file(“data/file.csv”);

    $total_sum = 0;
    $summa = 0;
    foreach($cart as $elem => $line)
    {
    if(!strripos($line, “,”)) continue;
    $elem = explode(“,”,$line);
    $summa += $elem[2];

    echo ‘
    ‘.$elem[1].’
    ‘.$elem[2].’
    ‘.$elem[3].’
    ‘.$elem[2] * $elem[3].’
    ‘.$elem[4].’
    ‘;
    }

    echo ”.$summa.’
    ‘.$total_sum.”;

Добавить комментарий

Top