У меня есть данные в базе данных MySQL. Я отправляю пользователю URL-адрес, чтобы вывести его данные в виде файла CSV.
У меня есть ссылка на электронную почту, запрос MySQL и т. Д.
Как я могу, когда они нажимают на ссылку, иметь всплывающее окно для загрузки CVS с записью из MySQL?
У меня есть вся информация, чтобы получить запись уже. Я просто не вижу, как заставить PHP создавать файл CSV и позволить им загружать файл с расширением .csv.
php
csv
download
http-headers
d -_- б
источник
источник
php: // вывод
fputcsv
источник
outputCSV
функция неоправданно сложна. Вы можете простоforeach
более$array
, посылая свои ценности прямо вfputcsv
. Нет нужды в этом__outputCSV
и вarray_walk
:)foreach($data as $vals) {fputcsv($filehandler,$vals);}
"Prévalence","age 1","city 1"
идеи? Мессинг с UTF-8 пока не помог.Вот улучшенная версия функции от php.net, которую выложил @Andrew.
Он действительно прост в использовании и прекрасно работает с наборами результатов MySQL (i) / PDO.
Не забудьте
exit()
после вызова этого, если вы закончили со страницей.источник
fputcsv($outstream, array_keys($results[0]));
непосредственно перед вашим,foreach
чтобы также включить заголовки столбцов.В дополнение ко всему, что уже сказано, вам может понадобиться добавить:
Это очень полезно при работе с файлами на нескольких языках, таких как имена людей или города.
источник
Нить немного старая, я знаю, но для дальнейшего использования и для нубов, как я:
Все остальные здесь объясняют, как создать CSV, но пропускают основную часть вопроса: как связать. Чтобы связать загрузку CSV-файла, вы просто ссылаетесь на .php-файл, который, в свою очередь, отвечает как .csv-файл. Заголовки PHP делают это. Это включает классные вещи, такие как добавление переменных в строку запроса и настройку вывода:
my_csv_creator.php может работать с переменными, заданными в строке запроса, и, например, использовать различные или настраиваемые запросы к базе данных, изменять столбцы CSV, персонализировать имя файла и т. д., например:
источник
Создайте свой файл, затем верните ссылку на него с правильным заголовком, чтобы активировать функцию «Сохранить как» - при необходимости измените следующее. Поместите свои данные CSV в $ csvdata.
источник
Вот полный рабочий пример использования PDO и заголовков столбцов:
источник
Сначала создайте данные в виде строки с запятой в качестве разделителя (через «,»). Что-то вроде этого
источник
Эй, это работает очень хорошо .... !!!! Спасибо Питер Мортенсен и Коннор Бертон
?>
источник
Простой метод -
Таким образом, каждая строка
$data
массива будет переходить на новую строку вашего вновь созданного файла CSV. Это работает только для PHP 5 и более поздних версий.источник
Вы можете просто записать свои данные в CSV, используя функцию fputcsv . давайте посмотрим на пример ниже. Записать массив списка в файл CSV
источник
Самый простой способ - использовать выделенный класс CSV, например так:
источник
Вместо того:
Использование:
источник
Уже очень хорошее решение пришло. Я просто помещаю полный код, чтобы новичок получил полную помощь
Я сохранил этот код в csv-download.php
Теперь посмотрим, как я использовал эти данные для загрузки CSV-файла
Поэтому, когда я нажал на ссылку, он загрузил файл, не открывая меня на странице csv-download.php в браузере.
источник
Чтобы он отправил его как CSV и дал ему имя файла, используйте header ():
http://us2.php.net/header
Что касается создания самого CSV, вы просто просматриваете набор результатов, форматируете вывод и отправляете его так же, как и любой другой контент.
источник
Написание собственного CSV-кода, вероятно, является пустой тратой времени, просто используйте пакет, такой как league / csv - он разбирается со всеми сложными для вас вещами, документация хороша, и она очень стабильна / надежна:
http://csv.thephpleague.com/
Вам нужно будет использовать композитор. Если вы не знаете, что такое композитор, я настоятельно рекомендую вам посмотреть: https://getcomposer.org/
источник
источник
Как записать в файл CSV, используя скрипт PHP? На самом деле я тоже искал это. Это довольно простая задача с PHP. fputs (handler, content) - эта функция работает для меня эффективно. Сначала вам нужно открыть файл, в который вам нужно написать контент, используя fopen ($ CSVFileName, 'wb').
источник
Введите в
$output
переменную данные CSV и отобразите правильные заголовки.источник