SimpleHTMLDom возвращает 500 ошибок при выводе на печать - PullRequest
0 голосов
/ 10 сентября 2018

При попытке распечатать вывод файла simplehtmldom выдает ошибку 500. Я попробовал следующие методы, но ошибка была та же.

  • Метод 1

    $ html = file_get_html ("http://www.google.com");

    print_r ($ HTML);

    Прочитав ответы на другие вопросы, я проверил, работал ли allow_url_fopen и работал ли он.

  • Метод 2

    $ html = file_get_contents ("http://www.google.com");

    print_r ($ HTML);

    Это работает, но когда я анализирую его с помощью следующего кода, снова ошибка 500.

    $ object = new simple_html_dom ();

    $ object-> нагрузка ($ HTML);

    var_dump ($ объекта);

  • Метод 3

    Тогда, в крайнем случае, я подумал, что мне следует попробовать использовать curl, а затем проанализировать. Поэтому я использовал curl и чтобы убедиться, что curl работает, я напечатал вывод на него. Но когда я снова разбираюсь в simplehtmldom 500 ошибка при выводе на печать.

[сб. Сен 08, 21: 26: 19.456961 2018] [: ошибка] [pid 703804] ModSecurity: Выходной фильтр: слишком большое тело ответа (превышено ограничение 404800001, всего не указано).

Я увеличил лимит почти в 100 раз, но ошибка все та же.

1 Ответ

0 голосов
/ 10 сентября 2018

Сообщение об ошибке указывает, что ModSecurity жалуется на Слишком большое тело ответа . Это не означает, что с загрузкой HTML с использованием библиотеки Simple HTML DOM что-то не так, речь идет о размере ответа, генерируемого вашим кодом (print_r или var_dump частей). Я предполагаю, что это связано с тем, что структура загружаемого HTML-кода требует большого количества вложенных объектов для представления дерева DOM, поэтому при попытке вывести полную структуру с помощью print_r или var_dump ответ становится слишком большим.

Чтобы убедиться, что HTML-код загружен и проанализирован, просто напечатайте обычный HTML-код страницы (используйте print вместо print_r для печати объекта simple_html_dom):

$html = file_get_html("http://www.google.com");

print($html);

и вы увидите, что HTML-код получен правильно, и вы можете работать с $html объектом, чтобы манипулировать DOM так, как вы ожидаете работать с объектами simple_html_dom.

Если вы хотите изменить выходной лимит для ModSecurity, чтобы вы могли генерировать более крупные ответы, посмотрите на этот вопрос: Mod Security ответ / размер тела запроса?

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