(PHP 4, PHP 5, PHP 7, PHP 8)
xml_set_external_entity_ref_handler — Set up external entity reference handler
Sets the external entity reference handler function for the XML parser
parser.
parserDer XML-Parser
handler
Wenn null übergeben wird, wird der Handler auf seinen Standardzustand
zurückgesetzt.
Eine leere Zeichenkette setzt den Handler ebenfalls zurück, allerdings ist dies seit PHP 8.4.0 veraltet.
Wenn handler vom Typ callable ist, wird
das Callable als Handler gesetzt.
Wenn handler vom Typ string ist, kann es
der Name der Methode eines Objekts sein, das mit
xml_set_object() gesetzt wurde.
Dies ist seit PHP 8.4.0 veraltet.
Seit PHP 8.4.0 wird die Gültigkeit des Callables bereits beim Setzen des Handlers geprüft, nicht erst beim Aufruf. Das bedeutet, dass xml_set_object() aufgerufen werden muss, bevor eine Methoden-Zeichenkette als Callback gesetzt wird. Da aber auch dieses Verhalten seit PHP 8.4.0 veraltet ist, wird stattdessen empfohlen, ein korrektes Callable für die Methode zu verwenden.
The signature of the handler must be:
$parser,$open_entity_names,$base,$system_id,$public_idparseropen_entity_namesbasesystem_id) of the external entity.
system_idpublic_id
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.
Gibt immer true zurück.
| Version | Beschreibung |
|---|---|
| 8.4.0 |
Die Übergabe einer Zeichenkette an handler, die kein
Callable ist, ist nun veraltet. Daher sollte für Methoden ein
korrektes Callable verwendet werden, oder null, um den Handler zurückzusetzen.
|
| 8.4.0 |
Die Gültigkeit von handler als Callable
wird nun bereits beim Setzen des Handlers geprüft und nicht erst beim Aufruf.
|
| 8.0.0 |
parser erwartet nun eine
XMLParser-Instanz; vorher wurde eine gültige
xml-Ressource erwartet.
|
| 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.
|