Boa tarde Yuri,
Como te falei antes eu coloquei o comando ini_set em 3 scritps de eventos da aplicacao de consulta e funcionou (sem colocar o memory_limit=-1 globalmente no php.ini) … resolvi então pesquisar porque funcionou sem precisar colocar globalmente no php.ini.
Fiz o seguinte:
Criei uma aplicacao de consulta HTML de nome “minha_consulta” e coloquei na barra de ferramentas a opcao de exportar o resultado da consulta em xls, xml, rtf e csv.
a) No evento onApplicationInit inclui o seguinte comando $x=ini_set(“memory_limit”,"-1");
b) No evento onNavegation inclui o seguinte comando $y=ini_set(“memory_limit”,"-1");
c) No evento onScriptInit inclui o seguinte comando $z=ini_set(“memory_limit”,"-1");
obs: Veja que usei tres variaves diferentes (x, y z) justamente para identificar o evento em que foi inserido … para não confundir …
Depois que salvei e compilei a aplicacao, fui verificar os arquivos gerados dentro da pasta da aplicacao …/minha_consulta/
Descobri o seguinte:
-
o comando $x=ini_set(“memory_limit”,"-1"); do onApplicationInit foi incluído no arquivo minha_consulta.php
-
os comandos $y=ini_set(“memory_limit”,"-1") do evento onNavegation ; e $z=ini_set(“memory_limit”,"-1"); do evento onScriptInit foram incluídos no arquivo minha_consulta_grid.class.php
-
o comando $z=ini_set(“memory_limit”,"-1"); do evento onScriptInit foi incluído nos arquivos:
minha_consulta_rtf.class.php,
minha_consulta_csv.class.php,
minha_consulta_xml.class.php, e
minha_consulta_xls.class.php.
Assim, como o comando foi inserido no evento onScriptInit da aplicacao minha_aplicacao e “incluido” no processo de compilacao no arquivo minha_aplicacao_xls.class.php, a extração para XLS funcionou sem restricao de memoria e sem precisar incluir o memory_limit globalmente.
Cesar.