Forum und email

xml_set_unparsed_entity_decl_handler

(PHP 4, PHP 5)

xml_set_unparsed_entity_decl_handler — "nem elemzendő egyedek" kezelőfüggvényét állítja be az elemző számára

Leírás

bool xml_set_unparsed_entity_decl_handler ( resource $parser , callback $handler )

A parser paraméterben megjelölt XML elemző "nem elemzendő egyedet" (unparsed entity) kezelő függvényét állítja be, amelynek a nevét a handler paraméterben kell átadni. Ennek a függvénynek már léteznie kell, amikor a parser elemzővel meghívásra kerül az xml_parse() függvény.

Ez az kezelőfüggvény akkor kerül meghívásra, ha az XML elemző az alábbi alakú, ún. külső, nem elemzendő egyed-deklarációval találkozik:

<!ENTITY <parameter>name</parameter> {<parameter>public_id</parameter> | <parameter>system_id</parameter>}
        NDATA <parameter>notation_name</parameter>

Lásd még az » XML 1.0 specifikáció 4.2.2 fejezetét a jelölésként deklarált külső egyedekről!

A handler -ben megnevezett függvénynek hat paramétert kell fogadnia, a függvény prototípusa a következő:

handler ( resource $parser , string $entity_name , string $base , string $system_id , string $public_id , string $notation_name )
parser
Az első paraméter, parser, hivatkozás az aktuális XML elemzőre, amely ezt a kezelőfüggvényt meghívta és használja.
entity_name
A definiálandó egyed neve.
base
Ez tartalmazná azt az "alapot", amivel külső egyedek rendszerazonosítóját (system_id ) fel lehetne oldani. Ez a paraméter jelenleg üres sztringet ad.
system_id
A negyedik paraméter, system_id , ami az egyed deklarációjában szereplő rendszerazonosítót tartalmazza.
public_id
Az ötödik paraméter, public_id , az egyed-deklarációban meghatározott nyilvános azonosító.
notation_name
Az egyed jelölésének (notation) a neve.(lásd: xml_set_notation_decl_handler()!)

Ha a függvény neve helyett üres sztring vagy FALSE szerepel, akkor a kérdéses kezelőfüggvény nem elérhető, le van tiltva.

TRUE-t ad vissza, ha a kezelőt sikeresen beállította, és FALSE-t, ha a parser nem érvényes erőforrás.

Note: A függvény neve helyett egy tömböt is átadhatsz, aminek egy objektum referenciát és egy metódus nevet kell tartalmaznia.