PHP中的xml_set_external_entity_ref_handler()函数
- xml_set_external_entity_ref_handler() 函数指定解析器在 XML 文档中找到外部实体时要调用的函数。
- 在 xml_set_external_entity_ref_handler() 函数中,handler 参数也可以是包含方法名称和对象引用的数组。
- xml_set_external_entity_ref_handler() 函数在成功时返回 TRUE。
- xml_set_external_entity_ref_handler() 函数在失败时返回 FALSE。
语法
xml_set_external_entity_ref_handler(parser,handler)
参数
参数 | 说明 |
---|---|
parser | 这是必需的参数。它被指定用于XML解析器。 |
handler | 这是必需的参数。它指定了当解析器找到外部实体时要调用的函数。 |
带有"handler"参数的xml_set_external_entity_ref_handler()函数必须具有五个参数:
参数 | 说明 |
---|---|
parser | 这是必需的参数。指定一个变量,该变量包含调用处理程序的XML解析器。 |
name | 这是必需的参数。它可以指定一个包含外部实体名称的变量 |
base | 这是必需的参数。它指定解析外部实体的系统标识符的基础。现在,这总是空的 |
system_id | 这是必需的参数。它指定外部实体的系统标识符。 |
public_id | 这是必需的参数。它指定外部实体的公共标识符。 |
<?php $xml_parser=xml_parser_create(); function char($xml_parser,$xml_data) { echo $xml_data; } function ext_ent_handler($xml_parser,$ent,$base,$sysID,$pubID) { echo "$ent<br />"; echo "$sysID<br />"; echo "$pubID<BR />"; } xml_set_character_data_handler($xml_parser,"char"); xml_set_external_entity_ref_handler($xml_parser, "ext_ent_handler"); $fp=fopen("test1.xml","r"); while ($xml_data=fread($fp,4096)) { xml_parse($xml_parser,$xml_data,feof($fp)) or die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } xml_parser_free($xml_parser); ?>
日期:2020-06-02 22:15:39 来源:oir作者:oir