Неустранимая ошибка: допустимый размер памяти в байтах исчерпан при использовании str_get_html - PullRequest
0 голосов
/ 06 мая 2020

Я сделал простой запрос и получил правильный ответ от curl_exec($ch);, но когда я вызываю метод stati c 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));
...

Какие-нибудь советы? Я могу использовать регулярные выражения, но это будет мой последний выбор.

1 Ответ

0 голосов
/ 06 мая 2020

Я думаю, HTML DOM Parser не очищает память в DOM каждый раз, когда вызывается file_get_ html или str_get_ html, поэтому это нужно делать каждый раз, когда вы завершаете работу с текущей DOM. Это так же просто, как добавить ->clear() в конец al oop или когда вы закончите его использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...