simple HTML dom 异常,关于PHP Simple HTML DOM Parser的异常处理

曾嘉福
2023-12-01

1.关于PHP Simple HTML DOM Parser加载大页面报错

加载大页面(比如:http://www.ebates.com/stores/all/index.htm)时,你调用其中的find的方法,报的错误信息是:Get Cssh back!PHP Fatal error:  Call to a member function find() on a non-object,原因是你调用file_get_html($url);将永远返回false,因为它限制最大的页面大小为600000字节。解决办法是将simple_html_dom.php中define('MAX_FILE_SIZE', 600000);改为合适的大小。

2.内存溢出导致程序崩溃的问题

如果是个大页面,然后你使用一个稍微复杂的选择器(多级选择器),就会跳出CLI停止工作的错误提示,然后程序就crash掉了。解决办法是(参考这里):将simple_html_dom.php中的clear函数由原来的

function clear()

{

$this->dom = null;

$this->nodes = null;

$this->parent = null;

$this->children = null;

}

替换成

function clear()

{

unset($this->dom);

unset($this->parent);

unset($this->parent);

unset($this->children);

}

 类似资料: