所以我有一些遗留在分配的内存上的遗留代码,尝试找出原因以及如何修复它将是一场噩梦。所以我知道你可以做可怕的事情:ini_set("memory_limit", "2048M");
但是有没有办法在你说代码执行之后将内存限制重置回原来的状态?
答案 0 :(得分:2)
你可以尝试这样的事情(虽然我从未尝试过内存限制)
//get the current limit
$memlimit = ini_get('memory_limit');
//set it to something else
ini_set("memory_limit", "2048M");
//... do some stuff
//set it back
ini_set("memory_limit", $memlimit);
我已将此用于错误报告和其他一些事情(不要问)。所以它可能会起作用: - /
我还应该解释(以防万一你不知道)用ini_set
设置任何东西只影响当前运行的PHP实例,所以在那个实例(请求)之外的一切都将是php.ini
档案。
供参考(甚至认为它非常自我解释)
http://php.net/manual/en/function.ini-get.php
ini_get - 获取配置选项的值
是的,这只是获取价值,将其分配给变量进行存储,做你的事情,然后将其设置回原来的问题。