2010-07-19 133 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,則沒有內存限制&腳本將使用盡可能多的內存(因爲它需要(系統可以給它))。