防止内存溢出

时间:2010-07-19 19:52:27

标签: php memory curl

在我的php脚本中使用curl的某个时刻,出现以下错误:“致命错误:允许的内存大小为262144字节耗尽(试图) 分配77824个字节)“......它指出了脚本的这一部分:”$ s = curl_exec($ c);“

有什么问题?以及如何解决它?

4 个答案:

答案 0 :(得分:8)

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

  

允许的内存大小为262144字节

对于大多数PHP脚本来说,每个脚本200 KB的RAM是不够的。我的经验标准是最低8 MB; 16 MB是正常的。像WordPress这样的博客系统(它确实很胖,但仍然是最受欢迎的博客系统之一)在8 MB上窒息而且在16位中途运行得很好。

您应该更改php.ini中的memory_limit值。如果您在共享主机上,请求提供商将其增加到至少8M,更好的16M或更多。如果他们否认,请离开那里:这是不合标准的托管。

答案 1 :(得分:5)

你想要分配比堆可以处理的内存更多的内存

为xample

设置更高的限制

位于脚本顶部::

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

或在你的php.ini

memory_limit = 10M

这将你的memory_limit设置为10M

答案 2 :(得分:1)

ini_set()可能比在php.ini中设置内容更好。如果您有一个特定的应用程序,知道需要的不仅仅是标准内存 - 那么可以增加该应用程序的内存限制。您需要非常小心地打开所有代码以获得更高的内存限制。

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

答案 3 :(得分:0)

以下是一些建议:

  1. 修改您的php.ini文件并更改显示memory_limit = .25M的行,以便显示

    memory_limit = 16M

  2. 确保您正在致电

    curl_close($c);

    一致。

  3. 如果您想要包含更大的代码段,也许我们可以看到您有内存泄漏的位置。