(PHP 4, PHP 5, PHP 7, PHP 8)
xml_set_external_entity_ref_handler — Set up external entity reference handler
$parser, callable|string|null $handler): true
Sets the external entity reference handler function for the XML parser
parser.
parserThe XML parser.
handler
If null is passed, the handler is reset to its default state.
An empty string will also reset the handler, however this is deprecated as of PHP 8.4.0.
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().
This is deprecated as of PHP 8.4.0.
As of PHP 8.4.0, the callable is checked to be valid while setting the handler, not when it is called. This means that xml_set_object() must be called prior to setting a method string as the callback. However, as this behaviour is also deprecated as of PHP 8.4.0, using a proper callable for the method is recommended instead.
The signature of the handler must be:
$parser,$open_entity_names,$base,$system_id,$public_idparserThe XML parser calling the handler.
open_entity_namesA 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.
system_idThe system identifier as specified in the entity declaration.
public_idThe 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.
Always returns true.
| Version | Description |
|---|---|
| 8.4.0 |
Passing a non-callable string to
handler is now deprecated,
use a proper callable for methods, or null to reset the handler.
|
| 8.4.0 |
The validity of handler as a callable
is now checked when setting the handler instead of checking when calling it.
|
| 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.
|