Fatal error: Allowed memory size of 134217728 bytes exhausted

182
21 сентября 2018, 04:00

Есть html страница, которую нужно спарсить. Сначала пытался сделать это с помощью simple html dom, но он отказался, так как MAX_FILE_SIZE > 600 000 почти в 2 раза, пытался спарсить с помощью preg_match_all, которая в свою очередь первый раз хорошо работает, а на второй вызов бросает Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes) in Z:\home\localhost\www\parser\1.php on line 50. Страница весит 1218кб

$html = file_get_contents('source.html');
//$url = "http://46.4.130.245:8080/scripts/grabber/serp-test.php?site=semyadro.pro";
preg_match_all("#span class='big'>(.*?)<#", $html, $loss);
$res['poterianie'] = $loss[1][0];
$res['viroschie'] = $loss[1][1];
$res['prosevschie'] = $loss[1][2];
$res['novie'] = $loss[1][3];
preg_match_all('#<div class=\'color_main || medium\'>(.*?)</div>#', $html, $sites);// fatal error here(

как исправить? в чем проблема?

Answer 1

В Вашем случае проблема может решиться выделением процессу большего объёма памяти.

ini_set('memory_limit', '512M');

Но более правильно парсить большие XML-файлы, читая их порциями. Вот, почитайте: http://php.net/manual/ru/book.xml.php

Я с этим расширением работаю уже год. Прекрасно разбираются файлы в 100 М и больше.

READ ALSO
Yii2 $model-&gt;save() не работает

Yii2 $model->save() не работает

Пытаюсь осваивать Yii2 на одном небольшом внутреннем проектеВозникла проблема, перестала сохраняться модель

163
ютуб и php, вставка ролика

ютуб и php, вставка ролика

Есть некий массив, который достается из базы

173
PHP. Вывод данных с массива

PHP. Вывод данных с массива

Всем приветВозникла задачка, которую не могу решить

175
Как вывести данные из ajax?

Как вывести данные из ajax?

уже долго колупаюсь, излазил все что только можноНо не получается Имеется плагин ckeditor

194