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