(PHP 4, PHP 5, PHP 7, PHP 8)
xml_set_unparsed_entity_decl_handler — 设置未解析实体声明处理程序
为 XML 解析器 parser
设置未解析实体声明处理程序函数。
如果 XML 解析器遇到带有 NDATA 声明的外部实体声明,则将调用 handler
,例如:
<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>} NDATA <parameter>notationName</parameter>
参见 » XML 1.0 规范的 4.2.2 节,了解已声明为外部实体的符号的定义。
parser
XML 解析器。
handler
如果传递 null
,则处理程序将重置为其默认状态。
空字符串也会重置处理程序,但是从 PHP 8.4.0 开始已弃用此方法。
如果 handler
是一个 callable,则该可调用对象将被设置为处理程序。
如果 handler
是一个 string,它可以是使用 xml_set_object() 设置的对象的方法名称。
从 PHP 8.4.0 开始已弃用此方法。
从 PHP 8.4.0 开始,可调用对象在设置处理程序时会检查其有效性,而不是在调用时检查。这意味着必须在将方法字符串设置为回调之前调用 xml_set_object()。但是,由于此行为从 PHP 8.4.0 开始也已弃用,因此建议改用合适的 callable 来表示方法。
处理程序的签名必须是
$parser
,$entity_name
,$base
,$system_id
,$public_id
,$notation_name
parser
entity_name
base
systemId
) 的基准。
system_id
public_id
notation_name
始终返回 true
。