PHP xml_set_external_entity_ref_handler函数

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_set_external_entity_ref_handler函数示例
<?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