2014-11-27 3 views
0

У меня есть большая большая таблица данных (в 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

Каждый запрос может обслуживать только один отклик (1 html-страница или 1 изображение или 1 pdf или 1 файл csv или 1 ZIP-файл) –

+0

Вам не хватает точки с запятой (внутри цикла foreach). Кроме того, откуда берутся '$ items'? И как здесь относится MongoDB? –

+0

Sverri MongoDB упоминается здесь, чтобы узнать, есть ли другой альтернативный метод для экспорта данных в CSV через PHP. – FoxShrill

ответ

1

Вы можете отправить только один запрос на запрос.

Решение может заключаться в выводе нескольких файлов csv во временную папку на вашем веб-сайте и отправке загружаемых ссылок на эти файлы в качестве ответа.

Смежные вопросы