【发布时间】:2020-08-21 14:35:28
【问题描述】:
我做了一个简单的请求,我得到了来自 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));
...
有什么建议吗?我可以使用正则表达式,但将是我最后的选择。
【问题讨论】:
-
首先是检查 HTML 的大小。您可以尝试使用 DOMDocument,但在不知道页面大小的情况下,很难知道它是否适合它。
-
根据本站(sitechecker.pro/page-size),html大小为:38.96 KB,看起来很小
-
您确定在尝试增加内存时更改了正确的
php.ini文件吗? -
phpinfo();告诉我,他不会撒谎。 :)
标签: php curl dom html-parsing