Экспорт данных из MySql в CSV файл | rpilot62.ru — кодить зашебительно легко

Создание csv-файла на php fputcsv()

← разместить еще код

Создание csv-файла на php с помощью встроенной php-функции fputcsv() .

Устанавливаем разделить «;», кодируем файл в windows-1251 с помощью заданной функции toWindow() и устанавливая кодировку в заголовках, чтобы без проблем открывался файл в ms excel и OpenOfficeCalc.

Сгенерированный файл — /upload/export_flats_1_1424771228.csv.

Расшаренный код:

<? function toWindow($ii){ return iconv( "utf-8", "windows-1251",$ii); } header(‘Content-Type: text/csv; charset=windows-1251’); $file = fopen($_SERVER[‘DOCUMENT_ROOT’].’/upload/export_’.time().’.csv’, ‘w’); /* записываем в файл */ /* Формируем массив для записи */ $titles = array("Столбец 1","Столбец 2","Столбец ","Столбец 4","Столбец 5"); /* кодируем данные массива в windows-1251 */ foreach($titles as $p=>$titlesItem){ $titles[$p] = toWindow($titlesItem); } foreach ($titles as $fields) { fputcsv($file, $fields, ";"); /* записываем строку в csv-файл */ } fclose($file);

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

PHP как известно не умеет работать excel-файлами стандартными средствами.

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

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

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

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

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

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

«Иванов А.А.»;»Программист компании OX2.ru»;89255552332 «Сидоров А.Е.»;»Дизайне компании OX2.ru»;89161231212 «Пирожков А.Б.»;»Арт-директор OX2.ru»;84951232121 «Кулибин Б.А.»;»Менеджер OX2.ru»;89031233333

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

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

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

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

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

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

Array ( [0] => Array ( [0] => Иванов А.А. [1] => Программист компании OX2.ru [2] => 89255552332 ) [1] => Array ( [0] => Сидоров А.Е. [1] => Дизайне компании OX2.ru [2] => 89161231212 ) [2] => Array ( [0] => Пирожков А.Б. [1] => Арт-директор OX2.ru [2] => 84951232121 ) [3] => Array ( [0] => Кулибин Б.А. [1] => Менеджер OX2.ru [2] => 89031233333 ) )

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

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

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

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

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

Все данные у них храняться в excel файлах. И тут прекрасно подошел csv формат!

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

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

OX2 2014-10-05 2014-10-05

.

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

Закрыть меню