2011-08-17 109 views
-1

錯誤:致命錯誤:內存不足

Fatal error: Out of memory (allocated 123469824) (tried to allocate 71 bytes) in /home/test/tset/tset.net/public_html/test/simple_html_dom.php on line 1236

是的,我知道,許多問題都是。但我沒有意識到避免這個錯誤是多麼容易。如果發生此錯誤,我需要從下一個值開始循環。

我用simplehtmldom

代碼:

$html = file_get_html('http://www.windowsaffinity.com/?p=14721'); 

編輯: * 最大內存大小不足 *

+0

請發表您的代碼。您的PHP代碼使用的內存超過php.ini中設置的內存容量。 – Raptor

+1

這裏有問題嗎? –

+0

我明白這個錯誤,我不知道如何簡單地避免它。 – Mediator

回答

1

你抓不到在PHP中的致命錯誤。畢竟,它們是致命的。

不知道正是你想做什麼,這將是可能存儲某種櫃檯或其他位置參數的數據庫或其他文件,以「把你的地方」,直到你可以重新啓動腳本。

如果你正在運行的內存,你有更大的問題。要麼你的主機對於你想要做的事情太小,要麼你咬的比你咀嚼的更多(或者兩者都有)。嘗試打破你的過程分成多個部分,並呼籲unset()和/或分配null變量當你與他們進行限制你使用的空間,並告訴垃圾收集器,你的對象有資格被收集。

1

可以提高PHP的內存限制,通過ini_set,但這應該只是在每個腳本的基礎來進行(例如,從一個非常大的XML數據導入的/ etc文件)。解決提高內存限制的優秀問題 - Increasing PHP memory_limit. At what point does it become insane?

編輯:閱讀更新後,你的情況我會提高內存限制 - 假設你寫一個快速腳本一次性使用。如果ini_set被禁用(即最有可能在共享主機上),請在php.ini中設置memory_limit。

另一種選擇是使用套接字來獲取頁面(讀取小塊數據,並保存到文件或W/E)或運行系統命令(例如,wget -O /save/here.txt http://blah.com