Я пытаюсь понять, как работает libxml_use_internal_errors(true)
.Кажется, он не уважает флаг LIBXML_NOWARNING
.
Вот пример, использующий PHP 7.2.4.
libxml_use_internal_errors( false );
new SimpleXMLElement(
'<DataSet xmlns="iminvalid"></DataSet>',
LIBXML_NOWARNING );
var_dump(sizeof(libxml_get_errors()));
// int(0)
Как и ожидалось, эти заявления не выдают никаких предупреждений.Предупреждение пространства имен скрыто из-за LIBXML_NOWARNING
.
Однако это:
libxml_use_internal_errors( true );
new SimpleXMLElement(
'<?xml version="1.0" encoding="utf-8"?><DataSet xmlns="iminvalid"></DataSet>',
LIBXML_NOWARNING );
var_dump(sizeof(libxml_get_errors()));
// int(1)
// xmlns: URI iminvalid is not absolute
Неожиданно возвращает недопустимое предупреждение URI.Как можно libxml_use_internal_errors( true )
и скрыть предупреждения XML-разбора?