Создать и скачать 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
  • Создать интернет-магазин
  • Документация
  • Блог
    • Unix-подобные ОС
    • Php
    • MySQL
    • JavaScript
    • Менеджеры пакетов
    • Docker
    • Seo
  • Короткие ссылки
  • Вход
  • Регистрация
  • Главная
  • 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
3
0
Теги
Php 5.6 Php 7
Поделиться

Комментарии

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

Похожие посты

07 Декабря 2018

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

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

13 Декабря 2018

Анализ источника посетителей с помощью Sourcebuster.js или откуда пользователь перешел на сайт

Иногда, требуется вести внутренний учет источника, с которого зашел пользователь на сайт и к примеру сделал заказ. Рассмотрим пример, как узнать, откуда пользователь перешел на сайт. В этом нам поможет библиотека Sourcebuster.js, которая даст знать источник с которого перешел клиент на сайт ...
20 Декабря 2018

IonCube PHP Loader на Php 7.2 Ubuntu 18.04

Рассмотрим установку ionCube loader для php 7.2 для Ubuntu 18.04. Данный подход подойдет для любой версии php, которую поддерждивает разработчик ionCube.

26 Января 2019

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

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

17 Мая 2018

Что такое MVC или с чего начать писать сайт?

Рассмотрим вариант создания простого проекта с MVС, который будет откликаться статическую ссылку в браузере, без управления $_GET параметрами. Ссылка будет разбиваться на путь к файлам и задействовать нужные контроллер, модель и view файл.

19 Мая 2018

Фоновый процесс очереди в Php с Gearman

Иногда возникает нужда использовать фоновый процессы на Php. Рассмотрим пример использования такой возможности в связке Gearman + Php.

19 Мая 2018

Worker Gearman с консоли Cli на Php

Для нормальной работы воркера Gearman требуется постоянная его работа в зацикленном режиме. Со стороны сервера это можно реализовать одним запросом через консоль Cli. Рассмотрим роботу на простом примере.

21 Мая 2018

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

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

Категории

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

Теги

Ubuntu 14.04 (15) Софт (11) Gearman (3) Сервисы (2) Framework (1) MVC (1) Php 5.6 (15) Cli (2) 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 (5) Анализ (2) Ubuntu 18.04 (11) MySQL 5.7 (4) Генерация (2) Bower (1) Npm (1) NodeJs (3) Gulp (1) ImageCMS (2) Базы (1) JQuery (1) Сниппет (1)

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

Как вариант это может происходить из-за неизвестно...
root-i
21.01.22
Чтобы убрать ошибку Uncaught TypeError: $ is not a...
wlad2.ru
11.01.22
Спасибо!
Артём
04.09.21
tedy1, можно в index.php включить режим отладки и ...
root-i
18.03.21

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

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

Telegram Viber Mail

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

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

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