Щоб приховати застереження, вам потрібно дати спеціальні вказівки, 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);