允许的内存大小大于所需但丢失致命错误

时间:2015-04-19 18:12:56

标签: php memory file-get-contents

我正在尝试在文件上使用file_get_contents,但会收到以下错误:

  

致命错误:允许的内存大小为536870912字节耗尽(尝试过   在/dir/public_html/dir/file.php上分配187260544字节)   18

除非我弄错了允许的最大值大于我想要使用的最大值,为什么会出错呢?还有其他需要考虑的设置吗?

1 个答案:

答案 0 :(得分:0)

代码使用的总内存不能超过允许的最大内存。如果您在memory_get_usage之前致电file_get_contentshttp://php.net/manual/en/function.memory-get-usage.php),您可能会发现您要加载的文件的数量+ 187260544 btyes超出了允许的最大数量187260544 btyes。

如果是这样,那么你在内存中有其他变量占用大量内存。如果您正在将其他文件加载到内存中,请考虑在加载此文件之前清除它们(如果可以)(使用unset)或考虑通过使用fgets逐行读取文件来流式传输文件(http://php.net/manual/en/function.fgets.php)或使用PHP流(http://php.net/stream)。