致命错误:使用str_get_html时允许的内存大小已用尽的字节

问题描述 投票:0回答:1

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

Fatal error:  Allowed memory size of 536870912 bytes exhausted

我尝试增加内存memory_limit=2048M,但结果相同

我的代码:

$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));
...

任何提示?我可以使用正则表达式,但这将是我的最后选择。

php curl dom html-parsing
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.