首页 > 解决方案 > 致命错误:使用 str_get_html 时允许的字节内存大小耗尽

问题描述

我做了一个简单的请求,我得到了正确的响应,curl_exec($ch);但是当我调用静态方法时,str_get_html我的结果总是一样的。

Fatal error:  Allowed memory size of 536870912 bytes exhausted

我尝试增加内存memory_limit=2048M,但结果是一样的

phpinfo

我的代码:

$url = "https://www.php.net";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, []);
$this->callback = HtmlDomParser::str_get_html(curl_exec($ch));
...

有小费吗?我可以使用正则表达式,但将是我的最后选择。

标签: phpcurldomhtml-parsing

解决方案


我认为 HTML DOM Parser 不会在每次调用 file_get_html 或 str_get_html 时清理 DOM 中的内存,因此每次完成当前 DOM 时都需要明确地完成它。->clear()这就像在循环结束或使用完它时添加一样简单。


推荐阅读