CascadiaPHP 2024


(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_external_entity_ref_handlerSet up external entity reference handler


xml_set_external_entity_ref_handler(XMLParser $parser, callable $handler): true

Sets the external entity reference handler function for the XML parser parser.



The XML parser.


If null or an empty string is passed, the handler is reset to its default state.

If handler is a callable, the callable is set as the handler.

If handler is a string, it can be the name of a method of an object set with xml_set_object().

The signature of the handler must be:

    XMLParser $parser,
    string $open_entity_names,
    string|false $base,
    string $system_id,
    string|false $public_id
): bool
The XML parser calling the handler.
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).
This is the base for resolving the system identifier (system_id) of the external entity.
The system identifier as specified in the entity declaration.
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.

The handler should return true if the entity was handled, false otherwise. When returning false the XML parser will stop parsing and xml_get_error_code() will return XML_ERROR_EXTERNAL_ENTITY_HANDLING.

Return Values

Always returns true.


Version Description
8.0.0 parser expects an XMLParser instance now; previously, a valid xml 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.
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top