Как решить PHPExcel из-за ошибки памяти? - PullRequest
3 голосов
/ 27 июня 2011

Я использую PHPExcel для создания отчетов Excel:

  • У меня есть отчет, который составляет около 600 КБ
  • В отчете 15 листов
  • Каждый лист содержит приблизительно 200 строк и 12 столбцов.
  • Один лист содержит формулы.
  • Я использую PHPExcel для чтения и письма.
  • Я использую бесплатный веб-сервер amazon
  • У меня около 600 МБ ОЗУ на сервере

Проблема в том, что процесс записи в файл Excel прерывается (из-за нехватки памяти)

Что мне делать? Доступны ли другие библиотеки Excel? Мне нужна библиотека с возможностью чтения и записи.

Есть ли другой способ решить проблему нехватки памяти?

1 Ответ

1 голос
/ 27 июня 2011

Мне трудно поверить, что 600-килобайтный файл, запущенный через PHPExcel, занял бы 600 МБ памяти.Вероятно, только память, выделенная для PHP, заканчивается.Вы можете увеличить объем памяти, доступной для сценариев PHP, используя один из следующих методов:

  • Добавление memory_limit = 16M в файл php.ini (рекомендуется, если у вас есть доступ). С правами суперпользователя вы можете использоватьутилита sed в системах на базе Linux / Unix, чтобы увеличить память для 64M.Не забудьте правильно найти файл php.ini!sed -i 's/memory_limit = .*/memory_limit = 64M/' /etc/php5/apache2/php.ini
  • Добавление ini_set('memory_limit', '16M'); в ваш php-скрипт
  • Добавление php_value memory_limit 16M в ваш файл .htaccess в корневой папке вашего проекта
...