libxml_set_external_entity_loader

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

libxml_set_external_entity_loader — Змінити завантажувач за умовчанням для зовнішніх об'єктів

Опис

libxml_set_external_entity_loader(?callable $resolver_function): bool

Зміна стандартного завантажувача для зовнішніх об'єктів. Можна використовувати для придушення розширення довільних зовнішніх сутностей, щоб уникнути XXE-атак, навіть якщо для відповідної операції встановлено значення LIBXML_NOENT. Зазвичай це краще, ніж виклик libxml_disable_entity_loader()

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

resolver_function

Callback-функція (callable) з наступною сигнатурою:

resolver(?string $public_id, string $system_id, array $context): resource|string|null

public_id

Громадський ідентифікатор.

system_id

Системний ідентифікатор.

context

Масив із чотирьох елементів: "directory" "intSubName" "extSubURI"и"extSubSystem"

Ця callback-функція повинна повертати ресурс (resource) або рядок (string) з якого можна відкрити ресурс. Якщо повертається null, роздільна здатність посилання на сутність завершиться помилкою.

Значення, що повертаються

Повертає true у разі успішного виконання або **false**в случае возникновения ошибки.

Приклади

Приклад #1 Приклад використання libxml_set_external_entity_loader()****

Loading...

Результат виконання наведеного прикладу:

string(10) "-//FOO/BAR"
string(25) "http://example.com/foobar"
array(4) {
    ["directory"]    => NULL
    ["intSubName"]   => NULL
    ["extSubURI"]    => NULL
    ["extSubSystem"] => NULL
}
bool(true)

Дивіться також