PHP xml_set_external_entity_ref_handler()Functions


PHP XML 参考手册Complete PHP XML Reference Manual

Definition and Usage

The xml_set_external_entity_ref_handler() function specifies the function to be called when the parser finds an external entity in an XML document.

If successful, the function returns TRUE. If it fails, it returns FALSE.

Syntax

xml_set_external_entity_ref_handler(parser,handler)

Parameter Description
parser Required. Specifies the XML parser to use.
handler Required. Specifies the function to be called when the parser finds an external entity.

The function specified by the "handler" parameter must have five parameters:

Parameter Description
parser Required. Specifies a variable containing the XML parser that calls the handler.
name Required. Specifies a variable containing the name of the external entity.
base Required. Specifies the base for resolving the system identifier (system_id) of the external entity. This parameter is usually set to NULL currently.
system_id Required. Specifies the system identifier of the external entity.
public_id Required. Specifies the public identifier of the external entity.


Tips and Notes

Note:The handler parameter can also be an array containing an object reference and a method name.


Examples

<?php
$parser=xml_parser_create();

function char($parser,$data)
{
echo $data;
}

function ext_ent_handler($parser,$ent,$base,$sysID,$pubID)
{
echo "$ent<br />";
echo "$sysID<br />";
echo "$pubID<BR />";
}

xml_set_character_data_handler($parser,"char");
xml_set_external_entity_ref_handler($parser, "ext_ent_handler");
$fp=fopen("test.xml","r");

while ($data=fread($fp,4096))
{
xml_parse($parser,$data,feof($fp)) or
die (sprintf("XML Error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}

xml_parser_free($parser);
?>


PHP XML 参考手册Complete PHP XML Reference Manual Other Extensions