出现这个错误消息,有什么建议吗?
允许内存大小为33554432字节已耗尽(已尝试分配 43148176字节)的PHP
出现这个错误消息,有什么建议吗?
允许内存大小为33554432字节已耗尽(已尝试分配 43148176字节)的PHP
当前回答
你的脚本占用了太多内存。在PHP中,如果有一个超出控制的循环,并且每次循环都要创建对象或向数组中添加内容,则经常会发生这种情况。
检查有无无限循环。
如果这不是问题,尝试通过将对象设置为null来销毁它们来帮助PHP。如。$OldVar = null;
还要检查实际发生错误的代码。你认为这一行会分配大量的内存吗?如果没有,试着找出哪里出了问题。
其他回答
你的脚本占用了太多内存。在PHP中,如果有一个超出控制的循环,并且每次循环都要创建对象或向数组中添加内容,则经常会发生这种情况。
检查有无无限循环。
如果这不是问题,尝试通过将对象设置为null来销毁它们来帮助PHP。如。$OldVar = null;
还要检查实际发生错误的代码。你认为这一行会分配大量的内存吗?如果没有,试着找出哪里出了问题。
如果使用共享主机,则不能强制增加php大小限制。
只要去你的cpanel和升级你的php版本到7.1以上,然后你就可以去了。
我们也遇到过类似的情况,我们尝试了顶部给出的答案 报错(' memory_limit ', ' 1 '); 一切工作正常,压缩图像文件大于1MB到KBs。
做的事情:
ini_set('memory_limit', '-1');
从来都不是好事。如果你想读取一个很大的文件,最好的做法是一点一点地复制它。尝试以下代码进行最佳实践。
$path = 'path_to_file_.txt';
$file = fopen($path, 'r');
$len = 1024; // 1MB is reasonable for me. You can choose anything though, but do not make it too big
$output = fread( $file, $len );
while (!feof($file)) {
$output .= fread( $file, $len );
}
fclose($file);
echo 'Output is: ' . $output;
Wordpress用户添加一行:
@ini_set('memory_limit', '-1');
or
在cpanel中设置memory_limit为-1