【发布时间】:2010-07-19 19:52:26
【问题描述】:
在我使用 curl 的 php 脚本中,出现以下错误:“致命错误:允许的内存大小为 262144 字节已用尽(尝试
allocate 77824 bytes) in"... 它指出了这部分脚本:"$s = curl_exec($c);"
有什么问题?又该如何解决呢?
【问题讨论】:
在我使用 curl 的 php 脚本中,出现以下错误:“致命错误:允许的内存大小为 262144 字节已用尽(尝试
allocate 77824 bytes) in"... 它指出了这部分脚本:"$s = curl_exec($c);"
有什么问题?又该如何解决呢?
【问题讨论】:
在这种情况下,您的服务器配置错误。
允许的内存大小为 262144 字节
每个脚本 200 KB 的 RAM 对于大多数 PHP 脚本来说是不够的。根据我的经验,标准是至少 8 MB; 16MB 是正常的。像 WordPress 这样的博客系统(它确实很胖,但仍然是目前最流行的博客系统之一)在 8 MB 的内存中窒息而在 16 MB 的情况下运行得体。
您应该更改 php.ini 中的 memory_limit 值。如果您使用共享主机,请要求提供商将其增加到至少 8M,最好是 16M 或更多。如果他们否认,那就离开那里:这是不合标准的托管。
【讨论】:
您分配的内存超出了堆的处理能力
设置更高的限制,例如
在脚本的顶部::
ini_set("memory_limit","10M");
或者在你的 php.ini 中
memory_limit = 10M
这会将你的 memory_limit 设置为 10M
【讨论】:
ini_set() 可能比在php.ini 中设置一些东西更好。如果您有一个您知道需要比标准内存更多的特定应用程序 - 那么增加该应用程序的内存限制就可以了。但是,您需要非常小心地打开所有代码以具有更高的内存限制。
也就是说,如果您将 memory_limit 设置为 0,则没有内存限制,脚本将使用所需的内存(系统可以提供)。
【讨论】:
这里有几个建议:
编辑您的 php.ini 文件并更改显示 memory_limit = .25M 的行,使其显示
memory_limit = 16M
确保你在打电话
curl_close($c);
始终如一。
如果你想包含更大的代码 sn-p,也许我们可以看到你有内存泄漏的地方。
【讨论】: