For anyone who was also wondering what kind of events this function actually handles:
it's used in cases when an XML comment is found or an additional declaration like an xml-stylesheet. In such cases the data argument contains the whole string as it is, for example:
<!-- this is a comment -->
<?xml-stylesheet title="mystyle" type="text/xsl" href="style.xsl" ?>xml_set_default_handler
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
xml_set_default_handler
Референца за `function.xml-set-default-handler.php` со подобрена типографија и навигација.
xml_set_default_handler
(PHP 4, PHP 5, PHP 7, PHP 8)
xml_set_default_handler — Set up default handler
= NULL
Постави стандарден ракувач
parser.
Параметри
parser-
XML парсерот.
handler-
Враќа
nullсе поминува, рачката се ресетира на својата стандардна состојба.Ги ескејпува специјалните знаци во стринг за употреба во SQL изјаваПразен стринг исто така ќе ја ресетира рачката, меѓутоа ова е застарено од PHP 8.4.0.
Враќа
handlerе callable, повикливиот се поставува како рачка.Враќа
handlerе string, тоа може да биде името на метод на објект поставен со xml_set_object().Ги ескејпува специјалните знаци во стринг за употреба во SQL изјаваОва е застарено од PHP 8.4.0.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјаваОд PHP 8.4.0, повикливиот се проверува да биде валиден при поставување на рачката, а не кога се повикува. Ова значи дека xml_set_object() мора да се повика пред поставување на стринг за метод како повратен повик. Меѓутоа, бидејќи ова однесување е исто така застарено од PHP 8.4.0, користењето на соодветен callable за методот се препорачува наместо тоа.
Сигнатурата на рачката мора да биде:
parser- XML парсерот што ја повикува рачката.
-
data -
dataЈа поставува стандардната функција за ракувач за XML парсерот
Вратени вредности
Секогаш враќа true.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.4.0 |
Поминување на не-callable string to
handler е сега застарено, користете соодветен повик за методи, или null за ресетирање на ракувачот.
|
| 8.4.0 |
Валидноста на handler како callable
се проверува сега при поставување на ракувачот наместо при негово повикување.
|
| 8.0.0 |
parser очекува XMLParser
инстанца сега; претходно, валидна xml resource се очекуваше.
|
Белешки од корисници 3 белешки
it seems to me that in PHP5 the function defined as default-handler (using xml_set_default_handler()) doesen't get passed the cdata anymore:
i.e.:
xml_set_element_handler($this->parser, 'parseSTART', 'parseEND');
xml_set_default_handler($this->parser, 'parseDEFAULT');
function parseSTART() { ... }
function parseEND() { ... }
function parseDEFAULT() { ... }
under PHP5, parseDEFAULT will NOT get passed any cdata, but unter PHP4 it will. at least that's my take on the strange stuff (not) happening after migrating to PHP5.
my solution was to add a xml_set_character_data_handler($parser, 'parseDEFAULT'). it worked for me.I have the same issue using two installation of PHP5: on accepts to use the default handler while the other only uses the character_data one.
Maybe a configuration problem...
;) Nonor.