我想了解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解析警告?
答案 0 :(得分:0)
从php 7.3.15开始,它似乎可以正常工作。 两个示例均未显示警告,但第二个示例确实捕获了警告。该标志不会阻止通过该功能捕获警告,而只是禁止在控制台或Web浏览器上显示警告。