致命错误:内存不足

时间:2011-08-17 01:55:22

标签: php parsing html-parsing out-of-memory

错误:

  

致命错误:内存不足(已分配123469824)(尝试分配71   字节)   /home/test/tset/tset.net/public_html/test/simple_html_dom.php上线   1236

是的,我知道很多这些问题都是。但我没有意识到避免这个错误是多么容易。我需要如果发生这个错误,只需从下一个值开始循环。

我使用simplehtmldom

代码:

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

编辑: * 最大内存不足 *

2 个答案:

答案 0 :(得分:1)

您无法捕获PHP中的致命错误。毕竟,他们是致命的。

如果不确切知道你要做什么,是否可以将某种计数器或其他位置参数存储在数据库或其他文件中以“保留你的位置”,直到你可以重新启动脚本。

如果你的内存不足,你会遇到更大的问题。要么你的托管对于你想要做的事情来说太小了,要么你咬的比你咀嚼的要多(或两者都有)。尝试将您的流程分成多个部分,并在完成变量时调用unset()和/或将null分配给变量以限制您正在使用的空间,并告诉垃圾收集器您的对象有资格被收集。

答案 1 :(得分:1)

您可以通过ini_set提高php的内存限制,但这只能在每个脚本基础上完成(例如,从非常大的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