Массив для загрузки csv в PHP

Я пытаюсь превратить свой массив в PHP в CSV для загрузки.

В настоящее время массив выглядит примерно так

Array[0] = "Name,age,ID"
Array[1] = "Alex,26,1"
Array[2] = "Ryan,12,2"
Array[3] = "Steph,56,7"

так далее

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

Я установил следующие заголовки:

header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");

затем я попытался повторить каждый элемент массива, надеясь, что это сработает. следующее:

header("Content-type: text/csv");
 header("Content-Disposition: attachment; filename=file.csv");
foreach ($lines as &$line) {
   echo $line;
}

Где $lines был моим массивом.

Однако в csv все было одной строкой. Есть ли способ повернуть этот массив для правильной печати в CSV?

@PatrickQ готово, это просто базовое эхо, я не думал, что это нужно.

Lain 11.10.2018 19:42
echo "$line\n";
miken32 11.10.2018 19:43
echo не добавляет автоматически новые строки в конец вашего контента. Вы должны сделать это явно.
Patrick Q 11.10.2018 19:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
1 624
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы должны добавить новую строку

echo $line . "\n";

Даже лучше

echo $line . PHP_EOL; //constant for correct line-ending depending on OS.

Используйте PHP_EOL для кроссплатформенной новой строки: echo $line, PHP_EOL;

Jeto 11.10.2018 19:44

Боже мой, я тупой. Думаю, после программирования на PHP почти 2 года я бы это уловил. Я приму ответ, когда он мне позволит.

Lain 11.10.2018 19:45

Одно из решений - функция fputcsv.

header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
$output = fopen('php://output', 'w');
foreach ($lines as $line) {
    $row = explode(',', $line);
    fputcsv($output, $row);
}
fclose($output);

Другие вопросы по теме