(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
.
parser
Der 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_id
parser
open_entity_names
base
system_id
) of the external entity.
system_id
public_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.
|