CakeFest 2024: The Official CakePHP Conference

xml_set_external_entity_ref_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_external_entity_ref_handlerУстановка обработчика внешних сущностей

Описание

xml_set_external_entity_ref_handler(XMLParser $parser, callable $handler): true

Задаёт функцию обработчик внешних сущностей для XML-анализатора parser.

Список параметров

parser

Парсер XML.

handler

Если передаётся значение null или пустая строка, то обработчик возвращается в состояние по умолчанию.

Если параметр handler является типом callable, то в качестве обработчика устанавливается callable.

Если параметр handler является строкой (string), то это может быть имя метода объекта, заданного с помощью функции xml_set_object().

Сигнатура обработчика должна быть:

handler(
    XMLParser $parser,
    string $open_entity_names,
    string|false $base,
    string $system_id,
    string|false $public_id
): bool
parser
XML-парсер, вызывающий обработчик.
open_entity_names
Список разделённых пробелами имён сущностей, которые могут участвовать в разборе текущей сущности (включая текущую сущность).
base
Это основа для разрешения системного идентификатора (system_id) внешней сущности.
system_id
Системный идентификатор в том виде, как он представлен в объявлении сущности.
public_id
Общедоступный идентификатор в том виде, как он представлен в объявлении сущности, либо пустая строка, если такового нет; пробелы в идентификаторе будут нормализованы в соответствии с требованиями XML-спецификации.

Обработчик должен вернуть true, если сущность была обработана, в противном случае он должен вернуть false. При возврате значения false, XML-парсер прекращает разбор, а функция xml_get_error_code() возвращает константу XML_ERROR_EXTERNAL_ENTITY_HANDLING.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия Описание
8.0.0 Параметр parser ожидает экземпляр класса XMLParser; раньше параметр ждал корректный xml-ресурс (resource).
7.3.0 Возвращаемое значение handler больше не игнорируется, если модуль был собран с библиотекой libxml. Раньше возвращаемое значение игнорировалось, а разбор никогда не останавливался.
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top