PHP致命错误:允许的内存大小为268435456字节耗尽(尝试分配XX字节)

时间:2013-12-10 04:51:26

标签: php memory-limit

最初,它在128MB的设置中声明,然后我收到了这个错误,我认为可能没有足够的内存,然后我增加到256MB,但错误仍在继续。

包含此错误的代码中的字符串:

function clean($str) {
$clean_str = stripslashes (trim($str));
return $clean_str;
}

// clean slashes
foreach($result[$i] as $key=>$value) {
 if($key=="currency") continue;
 $result[$i][$key] = clean($result[$i][$key]);
}

为什么会这样?

3 个答案:

答案 0 :(得分:3)

修改您的php.ini以将您的memory_limit增加到高于您当前配置的值 - 对于现代应用来说,512MB并不罕见。

答案 1 :(得分:0)

256MB(这些天的默认值,以及268435456字节所需的金额),是脚本的大量内存,所以如果超过它,首先要检查的是几个场景:

无限循环将耗尽内存限制:

var $storage = null;
while(true){
  $storage += 'infinity!'; // Or something even more resource requiring.
}

或者,如果你从数据库中提取数据并且意外地从包含大量数据的表中提取太多数据,并且在sql语句中没有限制,则可能会耗尽你的php脚本内存:

select * from users where true; // On a million-row table, this could do it.

所以一般来说,这条消息是关于脚本耗尽它的内存,但通常不会调用提高限制,而是要求弄清楚为什么你的脚本行为不端。

答案 2 :(得分:0)

在尝试激活插件时,我在错误日志中大约一天半前突然收到这些错误。这导致了空白/白屏。

“mod_fcgid:stderr:PHP致命错误:在wp-content / plugins / w3-total-cache / lib / W3 / ConfigKeys.php中,允许的内存大小为268435456字节(尝试分配491520字节)第1329行“

“mod_fcgid:stderr:PHP致命错误:在wp-content / plugins / w3-total-cache / lib / W3 / ConfigKeys.php中,允许的内存大小为268435456字节(尝试分配491520字节)第1329行“

在php.ini或.htaccess中提取memory_limit并没有解决我的问题。我不得不进入域的php设置,并使用Plesk将安全模式选项从“默认”或“关闭”转为“打开”。