include большого файла

Статус
В этой теме нельзя размещать новые ответы.

alexey84

phplancer
include большого файла

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 11796480 bytes) in ...
инклужу большой файл в 5000 строк кода и вылазит вот такая фака, причем на одном серваке вылазит на другом все окей
че делать? как это можно обойти в настройках пхп?
 

Фанат

oncle terrible
Команда форума
сдается мне ,что проблема не в размере файла, а в коде, который он выполняет
 

phpdev2007

Новичок
alexey84
Во первых подключить дебугер к скрипту и посмотреть логи которые он запишет, вы сразу будете видеть какая часть кода скушала память, потом уже дело техники.

один с отладчиков
http://pecl.php.net/package/apd
 

Страшный Злодей

Бывший член клуба (достало хамство).
Re: include большого файла

alexey84
А есть ли смысл инклюдить такой большой файл? Хотя по идее 5000 строк - это обычно не должно быть много...
Скорее всего, надо просмотреть, что активнее всего потребляет память...
Способов решения может быть несколько:
разбить файл на части, например, и в процессе обработки активно юзать [m]unset[/m].
Или пробовать читать файл построчно [m]fgets[/m], особенно, если не нужно выполнять в нём много кода...
ну и возможно ещё эта функция поможет - [m]memory_get_usage[/m]
 

Страшный Злодей

Бывший член клуба (достало хамство).
kruglov
Это как один из вариантов обработки файла по фрагментам -> считать n строк, обработать -> очистить память и т.д...
 

Страшный Злодей

Бывший член клуба (достало хамство).
kruglov
ну кроме eval, можно ещё и просто парсить как шаблон, например.
*****
Иногда этот способ бывает удобен и тогда я его использую. Не давно, кстати, скрипт такой запустил. Он xls файлы, преобразует в нужный формат (csv, txt, html), поскольку скрипт работает на хостинге с ограничением памяти в 8Mb, то на парсировке больших файлов скрипт принудительно останавливался сервером, часто не обработав и 3000 тысяч строк. После того как я стал разбирать файл по частям (обработка фрагмента -> установка метки -> остановка скрипта... -> считывание метки -> обработка фрагмента и т.д...) , все нормально заработало.
Wicked
:)
 

Gas

может по одной?
Страшный Злодей
речь шла не о файлах с данными, а о файлах с кодом - это две большие разницы.
 

Страшный Злодей

Бывший член клуба (достало хамство).
Gas
с кодом тяжелее, в этом случае метод с построчным разбором реализовывать надо исходя из обстоятельств. Я его и предлагал лишь в случае если кода не много...
Хотя опять же, если извращаться, то есть такие вещи как ob-функции и serialize.... ;)
 

Фанат

oncle terrible
Команда форума
Страшный Злодей
давай ты не будешь писать в те темы, в которых не разбираешься?
 

Gas

может по одной?
Страшный Злодей
ппц, лучше сотри что написал выше :)
 

Страшный Злодей

Бывший член клуба (достало хамство).
*****
Упс... так чего мне теперь вообще ни куда не писать? :))))))))))))))))

Gas
ты про извращения или про что-то другое? ;)

-~{}~ 12.12.07 23:08:

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