2015-08-27 2 views
0

Здравствуйте, я столкнулся с проблемой ошибки допустимого объема памяти. Я создал проект в codeigniter, php, и я использовал библиотеку Tbs. Его работа прекрасна, но сегодня он показывает ошибку:Разрешенная ошибка размера памяти в библиотеке Tbs

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 258010 bytes) in /home/abc/public_html/application/libraries/Tbs.php on line 4222

Пожалуйста, дайте мне любые предложения.

ответ

1

Если вы используете TBS + OpenTBS для слияния XLSX-файла, то в OpenTBS версии 1.9.2 существует известная проблема: если количество строк для слияния довольно много, то вы можете иметь очень длинный процесс или ошибка размера памяти при вызове $TBS->Show().

Используйте OpenTBS 1.9.2 или выше, который оптимизирован для этой точки, и если процесс еще длинный, вы можете оптимизировать его с помощью команды OPENTBS_RELATIVE_CELLS.

1

«Допустимый размер памяти в байтах XXXXXX исчерпан» является типичной ошибкой, если у вас нет, как указано в ее собственном имени, достаточного объема памяти для запуска php-запроса.

Попробуйте обновить memory_limit переменные на файл php.ini, или путь создания ini_set('memory_limit', 'XXXM'); на вашем PHP файл, который вы работаете, будучи XXX количество Мб памяти, который вы хотите определить.

Если это не так, у вас может быть ошибка в вашем программном обеспечении, вызывающее, то есть цикл, который потребляет память без какого-либо контроля; но, как вы сказали, что он сделал работу раньше ...

Во всяком случае, пожалуйста, проверьте все другие ответы от StackOverflow на этом аспекте:

Fatal Error: Allowed Memory Size of 134217728 Bytes Exhausted (CodeIgniter + XML-RPC)

CodeIgniter Fatal error: Allowed memory size of bytes exhausted

Codeigniter - Allowed memory size exhausted while uploading

+0

где я должен писать 'ini_set (' memory_limit ',' XXXM ');' потому что мой проект живет на сервере, поэтому у меня нет файла php.ini. Мне нужно связаться с моим хостом, поэтому я могу написать в моем htaccess файле? –

+0

Нет, memory_limit должен быть написан только в файле PHP.ini. – AleksanderKseniya

+0

Кроме того, функция ini_set должна быть добавлена ​​в верхней части вашего PHP-файла или заголовка :) – AleksanderKseniya

0

Как правило, этот тип происходит, когда ваш скрипт использует слишком много памяти. Это может часто возникать в PHP, если у вас есть цикл, который закончился из-за контроля, и вы создаете объекты или добавляете массивы на каждом проходе цикла. Проверьте наличие бесконечных циклов.

Если это не проблема, попробуйте и помогите PHP, уничтожив объекты, которые вы закончили, установив их на нуль, например. $ OldVar = null ;.

Проверьте код, где действительно происходит ошибка. Вы ожидаете, что эта линия будет выделять массивный объем памяти? Если нет, попробуйте выяснить, что пошло не так.

Никогда не обновляйте переменную memory_limit в файле php.ini или устанавливайте ini_set ('memory_limit', 'XXXM'); на вашем PHP-файле, который вы используете, будучи XXX объемом памяти Mb, которую вы хотите определить. Подключая приложение к еде памяти, он хочет, чтобы это было безумным шагом. Попытайтесь найти ошибку, требует ли ваше приложение столько памяти? Узнать

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