2011-08-17 94 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