Здравствуйте. Пытаюсь сделать экспорт данных в csv при нажатии на кнопку: if (isset($_POST['buttonCSV'])){ $data = array ( 'aaa,bbb,ccc,dddd', '123,456,789'); $fp = fopen('data.csv', 'w'); foreach($data as $line){ $val = explode(",",$line); fputcsv($fp, $val); } fclose($fp); $file = '/var/www/pochta-db/data.csv'; header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="data.csv"'); readfile($file); При этом содержимое выводится в браузер, а не в csv. Подскажите, как сделать?
Так функция https://www.php.net/manual/ru/function.readfile.php и выводит его в браузер. А вы что хотите?
Я хотел бы, чтобы данные выводились в csv и предлагалась возможность сохранить файл. Не подскажите, какой код для этого нужен?
Удалил, сейчас вообще ни чего не происходит, только записывает в файл data.csv на сервере, сохранить не предлагает.
PHP: <?php if (isset($_POST['buttonCSV'])) { $data = array ( 'aaa,bbb,ccc,dddd', '123,456,789'); $fp = fopen('data.csv', 'w'); foreach($data as $line) { $val = explode(",",$line); fputcsv($fp, $val); } fclose($fp); echo '<a href="?download">скачать</a><br><a href="?">смотреть</a>'; } else { $hdr = isset($_GET['download']) ? 'application/octet-stream' : 'Content-Type: text/csv'; $file = '/var/www/pochta-db/data.csv'; header($hdr); header('Content-Disposition: attachment; filename="data.csv"'); readfile($file); } ?>