0

代码:

if (flock($fp, LOCK_EX))
{
    fwrite($fp, serialize($this->_contents));
    flock($fp, LOCK_UN);
}

错误:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 17805286 bytes).....

错误行:

fwrite($fp, serialize($this->_contents));

知道如何解决这个问题吗?我的网站托管在共享主机上,所以我没有机会更改内存设置。

谢谢

4

2 回答 2

0

最有可能serialize($this->_contents)是问题所在。
我通常倾向于建议不要使用序列化将内容存储在数据库或文件中。

您应该将内部数据拆分_contents并单独写入。

于 2012-11-07T13:23:39.900 回答
0

它可能无法解决您的内存问题(因为您无法更改无法更改),但它可能允许您进行更多控制:

对于 或 类$this$this->_content您可以实现Serializeable以更优化内存的方式返回数据的 。

如果你真的可以内存优化它,你可以透明地使用它serialize

于 2012-11-07T13:35:14.110 回答