2010-07-19 110 views
0

在我的PHP脚本,使用卷曲,在某些时候出现以下错误:“致命错误:允许内存大小262144字节用尽(尝试
分配77824字节)”...“它指出脚本的这一部分:“$ s = curl_exec($ c);”防止内存溢出

什么问题?如何解决它?

回答

8

在这种情况下,您的服务器配置错误。

Allowed memory size of 262144 bytes

对于大多数PHP脚本而言,每个脚本的200千字节RAM是不够的。我的经验标准最低为8 MB; 16 MB是正常的。像WordPress这样的博客系统(它确实很胖,但仍然是最受欢迎的博客系统之一)在8 MB上窒息,并且以16的方式正常运行。

您应该更改您的php.ini中的memory_limit值。如果您使用的是共享主机,则需要提供商将其提高到至少8M,更好的是16M或更高。如果他们否认,离开那里:这是不合标准的托管。

5

你绑在脚本::

ini_set("memory_limit","10M"); 

或在你的PHP的顶部比分配堆更多的内存可以处理

设置你的极限更高,xample

.ini

memory_limit = 10M 

this this memory_limit to 10M

0

这里有一些建议:

  1. 编辑您的php.ini文件并更改,说memory_limit = .25M所以,它说

    memory_limit = 16M

  2. 确保您所呼叫

    curl_close($c);

    一致。

如果你想包含一个更大的代码片段,也许我们可以看到你有内存泄漏的地方。

1

ini_set()可能比设置php.ini更好。如果你有一个特定的应用程序,知道需要超过标准内存 - 那么可以增加该应用程序的内存限制。你要非常小心地打开你的所有代码,尽管有更高的内存限制。

也就是说,如果您将memory_limit设置为0,则没有内存限制&脚本将使用尽可能多的内存(因为它需要(系统可以给它))。