Я создаю файл Excel на основе записей из базы данных с помощью PHPExcel и сталкиваюсь со странной проблемой при создании его на большом наборе данных.Я сузил его до одной строки, вызывающей проблемы:
$objWriter->save('php://output');
Он просто выплевывает пустой файл вместо ожидаемой книги.Кроме того, эффект аналогичен, если я пытаюсь сохранить результат в локальном файле вместо перенаправления в браузер - файл никогда не создается.
Важно то, что он отлично работает для меньшего набора данных (меньшего размера).= до 200 строк, больше = до 2000 строк, до 20 столбцов в обоих случаях).Он также отлично работает на другом сервере (разработки) с ТОЧНО ЖЕ, 100% идентичный , большой набор данных.
У меня есть вызов save()
, заключенный в try-catch, но нетисключение повышено.Выполнение memory_get_peak_usage()
непосредственно перед переходом на save()
говорит мне, что оно использует 24 МБ, и у меня ini_set('memory_limit', '-1')
ранее в сценарии.Кроме того, мониторинг использования памяти на сервере во время выполнения сценария также не показывает существенного увеличения.
Какие-либо советы по его отладке?
Редактировать: в логах apache нет ошибок, однако я заметил, что соответствующая строка в логах доступа гласит:
10.1.1.1 - - [01/Jun/2011:08:35:03 -0400] "GET /get_excel.php HTTP/1.1" 200 16386
Нечетная часть - последний столбец - размер.Файл, который я загружаю, всегда пуст - ровно 0 бит, а не 16386.