Функции Язык программирования PHP

xml_set_element_handler

(PHP 3>= 3.0.6, PHP 4)

xml_set_element_handler - настраивает обработчики стартового и конечного элементов.

Описание

bool xml_set_element_handler (resource parser, string start_element_handler, string end_element_handler)

Устанавливает функции обработчиков для XML-разборщика parser.
start_element_handler и end_element_handler это строки, содержащие имена функций, которые обязаны существовать в при вызове xml_parse() для parser.

Функция start_element_handler обязана принимать три параметра: start_element_handler (resource parser, string name, array attribs)

parser

Это ссылка на XML-разборщик, вызывающий обработчик.

name

Содержит имя элемента, для которого вызывается обработчик. Если выравнивание регистра включено для данного разработчика, имя элемента будет в верхнем регистре.

attribs

Содержит ассоциативный массив с атрибутами элемента (если имеются). Ключами этого массива являются имена атрибутов, значения - значения атрибутов. Имена атрибутов получают выравнивание регистра с теми же критериями, что и имена элементов. Регистр значений атрибутов не выравнивается.

Оригинальный порядок атрибутов можно запросить, пройдя по attribs нормальным способом с помощью each(). Первый ключ массива - первый атрибут, и так далее.

Функция end_element_handler обязана принимать два параметра: end_element_handler (resource parser, string name)

parser

Это ссылка на XML-разборщик, вызывающий обработчик.

name

Содержит имя элемента, для которого вызывается обработчик. Если выравнивание регистра включено для этого разборщика, имя элемента будет в верхнем регистре.

Если функция обработчика установлена как пустая строка, или FALSE, обработчик отключается.

TRUE возвращается, если обработчики настроены, а FALSE, если parser не является разборщиком.

Примечание: вместо имени функции может быть предоставлен также массив, содержащий ссылку на объект и имя метода.


Назад Оглавление Вперёд
xml_set_default_handler Вверх xml_set_end_namespace_decl_handler

Использование постоянной таблицы ресурсов

Если вы просмотрите mysql.c, обратите внимание, что, за исключением более сложной функции connect, остальная часть модуля не изменилась.

Точно такой же интерфейс имеется для списка регулярных ресурсов и для списка постоянных ресурсов, только 'list' заменено на 'plist':

Более вероятно, однако, что эти функции окажутся бесполезны при попытке реализовать постоянный модуль. Обычно бывает нужно использовать тот факт, что список постоянных ресурсов является в действительности хэш-таблицей. Например, в модулях MySQL/mSQL, когда есть вызов pconnect() (постоянное connect), функция строит строку вывода host/user/passwd, которая передаётся этой функции, и хэширует SQL-ссылку этой строкой как ключом/key. При следующем вызове pconnect() с теми же host/user/passwd, будет сгенерирован тот же key, и функция найдёт SQL-ссылку в постоянном списке.

Пока документация отсутствует, вы должны просмотреть в mysql.c или в msql.c, как можно использовать возможности хэш-таблиц plist'ов.