允许的内存大小为134217728字节耗尽

时间:2012-09-04 13:13:38

标签: php memory memory-management

热点解决这个问题以及它为什么会发生?

Zend服务器日志:

  

PHP致命错误:允许的内存大小为134217728字节   (尝试在C:\ Program Files中分配538798977个字节)   第3行的(x86)\ Zend \ Apache2 \ htdocs \ test \ modules \ main.php

文件main.php如果直接从浏览器执行,则不会产生任何错误。但是,如果我使用其他PHO文件中的函数,则Zend Log会打印出上述错误。

4 个答案:

答案 0 :(得分:13)

我也解决了这个问题。

增加以下变量,以便您的页面执行不会停止:

  • max_input_time
  • memory_limit
  • max_execution_time

答案 1 :(得分:10)

要么增加php.ini中的内存限制,要么尝试优化应用程序之外的任何大型数据结构(如数组)。

在任何情况下,如果您的PHP应用程序使用128MB的RAM,可能会出现问题。

另外,正如Fluffeh在评论中指出的那样,你究竟在做什么来利用500MB的RAM?

答案 2 :(得分:6)

试试这个:

ini_set('memory_limit', '-1');

php.net/memory_limit

服务器将占用无限的内存。

答案 3 :(得分:1)

除了user1427811,您还可以在下载文件之前和之后监控time_limitmemory_limit

function custom_put_contents($source_url='',$local_path=''){

    $time_limit = ini_get('max_execution_time');
    $memory_limit = ini_get('memory_limit');

    set_time_limit(0);
    ini_set('memory_limit', '-1');      

    $remote_contents=file_get_contents($source_url);
    $response=file_put_contents($local_path, $remote_contents);

    set_time_limit($time_limit);
    ini_set('memory_limit', $memory_limit); 

    return $response;
}