PHP.mk документација

libxml_set_external_entity_loader

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.libxml-set-external-entity-loader.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.libxml-set-external-entity-loader.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
libxml_set_external_entity_loader

Референца за `function.libxml-set-external-entity-loader.php` со подобрена типографија и навигација.

function.libxml-set-external-entity-loader.php

libxml_set_external_entity_loader

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

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

= NULL

libxml_set_external_entity_loader(?callable $resolver_function): true

Ги менува стандардните вчитувачи на надворешни ентитети LIBXML_NOENT Ги менува стандардните вчитувачи на надворешни ентитети. Ова може да се користи за да се потисне експанзијата на произволни надворешни ентитети за да се избегнат XXE напади, дури и кога libxml_disable_entity_loader().

Параметри

resolver_function

А callable да ги вклучи заглавјата во излезот испратен до повикот дефиниран од

resolver(?string $public_id, string $system_id, array $context): resource|string|null
public_id
е поставено за соодветната операција, и обично е подобро од повикување
system_id
Јавниот ID.
context
Системскиот ID. "directory", "intSubName", "extSubURI" and "extSubSystem".
Низа со четирите елементи resource, а string Овој повик треба да врати null од кој може да се отвори ресурс. Ако

Вратени вредности

Секогаш враќа true.

Дневник на промени

Верзија = NULL
8.5.0 Типот на враќање е true сега; претходно, беше bool.

Примери

Пример #1 libxml_set_external_entity_loader() example

<?php
$xml
= <<<XML
<!DOCTYPE foo PUBLIC "-//FOO/BAR" "http://example.com/foobar">
<foo>bar</foo>
XML;

$dtd = <<<DTD
<!ELEMENT foo (#PCDATA)>
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());
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

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

Види Исто така

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.