Создать и скачать CSV на PHP / ~#root -i Создать и скачать CSV на PHP / ~#root -i Создать и скачать CSV на PHP / ~#root -i Создать и скачать CSV на PHP / ~#root -i Создать и скачать CSV на PHP / ~#root -i Создать и скачать CSV на PHP / ~#root -i Создать и скачать CSV на PHP / ~#root -i Создать и скачать CSV на PHP / ~#root -i
  • RU
  • UA
  • EN
  • Создать интернет-магазин
  • Документация
  • Блог
    • Unix-подобные ОС
    • Php
    • MySQL
    • JavaScript
    • Менеджеры пакетов
    • Docker
    • Seo
  • Вспомогательные сервисы
    • Короткие ссылки
    • Oбмен просмотрами YouTube
  • Вход
  • Регистрация
  • Главная
  • Php
  • Создать и скачать CSV на PHP

Создать и скачать CSV на PHP

Пример создания CSV с разделителем строки ";"

Разделитель CSV

Код:

        // 1
        $fp = fopen('./fileName.csv', 'w');
        if ($fp === false) {
            // 2
            exit('Can not create file (No Rights) ./fileName.csv');
        }
        
        // 3
        $models = [
            [
                'name' => 'Visa',
                'type' => 'Card',
                'balance' => '10.0'
            ],
            [
                'name' => 'Master',
                'type' => 'Card',
                'balance' => '0'
            ]
        ];
        
        // 4
        fwrite($fp, '"Имя";"Тип";"Баланс"' . "\n");         
        foreach ($models as $v) {            
            fwrite($fp, '"' . $v['name'] . '";"'
                    . $v['type'] . '";"'                    
                    . $v['balance'] . '"'                    
                    . "\n");            
        }
        
        // 5
        fseek($fp, 0);
        fclose($fp);
        
        // 6
        $data = file_get_contents('./fileName.csv');
        
        // 7
        header('Content-Type: text/csv'); // 7.1
        header('Content-Disposition: attachment; filename="fileName.csv"'); // 7.2
        header("Content-Transfer-Encoding: binary"); // 7.3
        header('Expires: 0'); // 7.4
        header('Pragma: no-cache'); // 7.5
        header("Content-Length: ".strlen($data)); // 7.6
        
        // 8
        exit($data);

Примечание:

Чтобы сработали header, перед срабатыванием кода не должно быть BOM и любого вывода информации.

1 - Создаем файл fileName.csv в корне сайта для записи.

2 - Предупреждаем про ошибку, если нет прав на запись.

3 - Массив значений, который мы будем обрабатывать

4 - Запись в файл. '"Имя";"Тип";"Баланс"' . "\n" (";" - разделитель строки,  "\n" - перенос строки).

5 - Возвращаем указатель на начало файла и закрываем файл (сохраняем).

6 - Считываем файл заново.

7 - Даем заголовки для возможности скачать файл.

7.1 - Параметр определяющий тип файла.

7.2 - Указатель на прикрепление файла.

7.3 - В каком виде передавать (в данном случае в бинарном).

7.4, 7.5 - Указатель чтобы не кешировать файл и постоянно отдавать актуальный.

7.6 - Размер контентной части файла.

8 - Выводим информацию, которая в связке с заголовками даст возможность скачать ее в CSV файл.

Результат:

Результат CSV

root-i
25 Апреля 22
93
0
Теги
Php 5.6 Php 7
Поделиться

Комментарии

Имя
Электронная почта
Рейтинг
Отзыв

Другие статьи из категории

19 Июня 2019

Шаблоны ImageCMS 4.10-4.12.1

Последние шаблоны от ImageCMS 4.12, для скачивания нужна авторизация.

26 Января 2019

Долгое хранение корзины в интернет-магазине

Рассмотрим варианты популярные варианты хранения товаров в корзине в интернет-магазине. Обозначим плюсы и минусы таких хранений. Рассмотрим варианты долгосрочного хранения корзины.

17 Января 2019

Ключ-лицензия для ImageCMS 4.9-4.12.1 Pro и Pre

Создание ключа для imageCMS 4.9-4.12.1 Pro и Pre. Для получения следует авторизироваться.

07 Декабря 2018

$_SERVER['DOCUMENT_ROOT'] в CLI или Cron

При запуске скрипта с консоли отсутствует DOCUMENT_ROOT в $_SERVER. Попытаемся обойти это своими путями, отловить директорию файла.

31 Октября 2018

Анализ нагруженных частей Php кода с помощью xhprof

После разработки какого-либо инструмента на PHP, становится вопрос, насколько созданный код ресурсный и какие элементы он затрагивает еще. Рассмотрим установку xhprof, настройку и рассмотрим способы работы с xhprof.

18 Июля 2018

Группировка условий в запросе ORM Propel (condition, combine)

Разберем возможность объединения условий в запросе по группам в Propel. Рассмотрим пример фильтрации по полям с помощью ->condition() и ->combine().

14 Июня 2018

Авторизация 1С на сайте PHP_AUTH_USER на CentOS apache

Столкнулся с проблемой авторизации 1с на сайте. Сервер почему то не принимал от нее параметр PHP_AUTH_USER и PHP_AUTH_PW. Рассмотрим подробнее решение и обход данных параметров в $_SERVER .

21 Мая 2018

Подсоединяем не объявленную таблицу в Propel или Join Custom Table Propel

Целью статьи стало присоединение (join) не объявленной в схеме (schema.xml) таблице в propel2. Видимо редкий случай или просто недостаточно документации по данной Propel ORM.

Категории

  • Unix-подобные ОС
  • Php
  • MySQL
  • JavaScript
  • Менеджеры пакетов
  • Docker
  • Seo

Теги

Ubuntu 14.04 (17) Софт (11) Gearman (3) Сервисы (2) Framework (1) MVC (1) Php 5.6 (16) Cli (3) Propel (3) ORM (3) JavaScript (5) Css (1) Composer (4) Docker (3) Seo (4) MySQL (5) docker-compose (2) CentOS (1) 1С (1) Memcache (1) Memcached (1) Php 7 (6) Анализ (2) Ubuntu 18.04 (13) MySQL 5.7 (4) Генерация (2) Bower (1) Npm (1) NodeJs (3) Gulp (1) ImageCMS (2) Базы (1) JQuery (1) Сниппет (1) Apache (1) Cron (1)

Последние комментарии

alex, я вижу 2 причины почему так может быть. Не в...
root-i
04.07.22
Сделал все так как написано в статье, не работает.
alex
04.07.22
Как вариант это может происходить из-за неизвестно...
root-i
21.01.22
Чтобы убрать ошибку Uncaught TypeError: $ is not a...
wlad2.ru
11.01.22

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

Благодарность, на продолжение работы сайта:
Контакты

Telegram Viber Mail

Поиск по сайту

  • Вход
  • Регистрация

Сайт работает на chmod -R