(PHP 4, PHP 5, PHP 7, PHP 8)
xml_set_external_entity_ref_handler — Установка обработчика внешних сущностей
Задаёт функцию обработчик внешних сущностей для XML-анализатора
parser
.
parser
Ссылка на XML-анализатор.
handler
handler
- строка содержащая имя функции, которая
должна быть определена на момент вызова функции
xml_parse() из анализатора
parser
.
Функция с именем handler
должна принимать
пять аргументов и возвращать целочисленный результат. Если обработчик
вернёт false
(равно как и ничего не вернёт), XML анализатор прекратит
работу, а функция xml_get_error_code() будет
возвращать константу
XML_ERROR_EXTERNAL_ENTITY_HANDLING
.
$parser
,$open_entity_names
,$base
,$system_id
,$public_id
parser
open_entity_names
open_entity_names
- список
разделённых пробелами имён сущностей, которые могут участвовать
в разборе текущей сущности (включая текущую сущность).
base
system_id
) внешней сущности. На данный момент
в качестве этого аргумента всегда передаётся пустая строка.
system_id
system_id
- системный
идентификатор в том виде, как он представлен в объявлении сущности.
public_id
public_id
- общедоступный
идентификатор в том виде, как он представлен в объявлении сущности,
либо пустая строка, если такового нет; пробелы в идентификаторе
будут нормализованы в соответствии с требованиями XML-спецификации.
Если в качестве обработчика передана пустая строка или false
, этот
обработчик отключается.
Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.
Функция всегда возвращает true
.
Версия | Описание |
---|---|
8.0.0 |
Параметр parser ожидает экземпляр XMLParser;
ранее ожидался корректный xml ресурс (resource).
|
7.3.0 |
Возвращаемое значение handler больше не
игнорируется, если модуль был собран с библиотекой libxml.
Раньше возвращаемое значение игнорировалось, а разбор
никогда не останавливался.
|