У меня есть большая большая таблица данных (в mongodb) с более чем 5 миллионами строк. Я хочу экспортировать данные в csv и напрямую вывести csv в браузере. Я использую PHP.Вывод нескольких CSV-файлов в браузер в PHP
Для меньшего набора записей менее миллиона строк следующий код работает отлично.
set_time_limit(0);
$output = fopen("php://output",'w') or die("Can't open php://output");
header("Content-Type:application/csv");
header("Content-Disposition:attachment;filename=auditresults_$i.csv");
fputcsv($output, array('id','createdon','colum1','column2','column3','colum4'));
foreach ($items as $item) {
fputcsv($output, $item)
}
fclose($output) or die("Can't close php://output");
Однако при экспорте больших наборов данных, таких как 5 миллионов строк, приведенный выше код не работает.
Я хочу посмотреть, есть ли способ разделить приведенные выше результаты пакетами в 100 000 строк и вывести несколько файлов csv через браузер.
Каждый запрос может обслуживать только один отклик (1 html-страница или 1 изображение или 1 pdf или 1 файл csv или 1 ZIP-файл) –
Вам не хватает точки с запятой (внутри цикла foreach). Кроме того, откуда берутся '$ items'? И как здесь относится MongoDB? –
Sverri MongoDB упоминается здесь, чтобы узнать, есть ли другой альтернативный метод для экспорта данных в CSV через PHP. – FoxShrill