Чтобы скрыть предупреждения, вы должны дать специальные инструкции, libxml
которые используются внутри для выполнения синтаксического анализа:
libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_clear_errors();
Значок libxml_use_internal_errors(true)
указывает, что вы собираетесь самостоятельно обрабатывать ошибки и предупреждения и не хотите, чтобы они испортили вывод вашего скрипта.
Это не то же самое, что @
оператор. Предупреждения собираются за кулисами, и впоследствии вы можете получить их, используя, libxml_get_errors()
если вы хотите выполнить регистрацию или вернуть список проблем вызывающему.
Независимо от того, используете ли вы собранные предупреждения, вы всегда должны очищать очередь, позвонив libxml_clear_errors()
.
Сохранение государства
Если у вас есть другой код, который использует, libxml
возможно, стоит убедиться, что ваш код не изменяет глобальное состояние обработки ошибок; для этого вы можете использовать возвращаемое значение, libxml_use_internal_errors()
чтобы сохранить предыдущее состояние.
$libxml_previous_state = libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_clear_errors();
libxml_use_internal_errors($libxml_previous_state);