xml_set_external_entity_ref_handler
Sets the external entity reference handler function for the XML parser parser.
Parameters
- parser
-
A reference to the XML parser to set up external entity reference handler function.
- handler
-
handler is a string containing the name of a function that must exist when xml_parse is called for parser.
The function named by handler must accept five parameters, and should return an integer value.If the value returned from the handler is false (which it will be if no value is returned), the XML parser will stop parsing and xml_get_error_code will return XML_ERROR_EXTERNAL_ENTITY_HANDLING.
handler(
XMLParser$parser,
string$open_entity_names,
string$base,
string$system_id,
string$public_id
):- parser
-
The first parameter, parser, is a reference to the XML parser calling the handler.
- open_entity_names
-
The second parameter, open_entity_names, is a space-separated list of the names of the entities that are open for the parse of this entity (including the name of the referenced entity).
- base
-
This is the base for resolving the system identifier (system_id) of the external entity.Currently this parameter will always be set to an empty string.
- system_id
-
The fourth parameter, system_id, is the system identifier as specified in the entity declaration.
- public_id
-
The fifth parameter, public_id, is the public identifier as specified in the entity declaration, or an empty string if none was specified; the whitespace in the public identifier will have been normalized as required by the XML spec.
If a handler function is set to an empty string, or false, the handler in question is disabled.
Note:
Instead of a function name, an array containing an object reference and a method name can also be supplied.
Return Values
Returns true on success or false on failure.
Changelog
Version | Description |
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected. |
7.3.0 | The return value of the handler is no longer ignored if the extension has been built against libxml. Formerly, the return value has been ignored, and parsing did never stop. |