PHP xml_set_external_entity_ref_handler()Functions
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);
?>
$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);
?>
Complete PHP XML Reference Manual Other Extensions