When using this funtion, be sure to clear your internal error buffer. If you dn't and you are using this in a long running process, you may find that all your memory is used up.
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
libxml_use_internal_errors — Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
libxml_use_internal_errors() позволяет отключить стандартные ошибки libxml и включить пользовательскую обработку ошибок.
use_errors
Включает (true
) пользовательскую обработку ошибок или отключает её (false
). Отключение также очищает все текущие ошибки libxml.
Эта функция возвращает предыдущее значение параметра
use_errors
.
Версия | Описание |
---|---|
8.0.0 |
use_errors теперь допускает значение null.
Ранее значением по умолчанию было false .
|
Пример #1 Пример использования libxml_use_internal_errors()
Этот пример демонстрирует основное использование ошибок libxml и значение, которое возвращает эта функция.
<?php
// включение обработки ошибок пользователем
var_dump(libxml_use_internal_errors(true));
// загрузка документа
$doc = new DOMDocument;
if (!$doc->load('file.xml')) {
foreach (libxml_get_errors() as $error) {
// обработка ошибок здесь
}
libxml_clear_errors();
}
?>
Результат выполнения приведённого примера:
bool(false)
When using this funtion, be sure to clear your internal error buffer. If you dn't and you are using this in a long running process, you may find that all your memory is used up.
When using libxml_use_internal_errors(true), and perform a possibly memory intensive operation like simplexml_load_string() next, you might end up with a blank screen and no php error logged because the error message been suppressed.
We use a custom error handler using set_error_handler() I found that after I call
libxml_use_internal_errors(false);
It resets my error_handler - not sure if this is a bug or not, I will report it as a bug - however, I needed to repeat my call to set_error_handler
(did confuse me for a while)