libxml_set_external_entity_loader
Изменение загрузчика по умолчанию для внешних объектов
&reftitle.description;
boollibxml_set_external_entity_loader
callablenullresolver_function
Изменение загрузчика по умолчанию для внешних объектов.
Можно использовать для подавления расширения произвольных внешних сущностей, чтобы избежать XXE-атак,
даже если для соответствующей операции установлено значение LIBXML_NOENT.
Обычно это лучше, чем вызов libxml_disable_entity_loader.
&reftitle.parameters;
resolver_function
Callback-функция (callable) со следующей сигнатурой:
resourcestringnullresolver
stringnullpublic_id
stringsystem_id
arraycontext
public_id
Публичный идентификатор.
system_id
Системный идентификатор.
context
Массив из четырёх элементов: "directory", "intSubName",
"extSubURI" и "extSubSystem".
Эта callback-функция должна возвращать ресурс (&resource;) или строку (&string;) из которой
можно открыть ресурс. Если возвращается &null;, разрешение ссылки на сущность завершится ошибкой.
&reftitle.returnvalues;
&return.success;
&reftitle.examples;
Пример использования libxml_set_external_entity_loader
bar
XML;
$dtd = <<
DTD;
libxml_set_external_entity_loader(
function ($public, $system, $context) use($dtd) {
var_dump($public);
var_dump($system);
var_dump($context);
$f = fopen("php://temp", "r+");
fwrite($f, $dtd);
rewind($f);
return $f;
}
);
$dd = new DOMDocument;
$r = $dd->loadXML($xml);
var_dump($dd->validate());
?>
]]>
&example.outputs;
NULL
["intSubName"] => NULL
["extSubURI"] => NULL
["extSubSystem"] => NULL
}
bool(true)
]]>
&reftitle.seealso;
libxml_disable_entity_loader
libxml_get_external_entity_loader