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)
Дивіться також
- libxml_disable_entity_loader() - Вимкнення можливості завантаження сутностей із зовнішніх джерел
- libxml_get_external_entity_loader() - Отримує поточний зовнішній завантажувач сутностей