PHP libxml_set_external_entity_loader()関数
例
デフォルトの外部エンティティ ローダーを変更します。
<?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());
?>
定義と使用法
libxml_set_external_entity_loader()関数は、デフォルトの外部エンティティ ローダーを変更します。
構文
<div>libxml_set_external_entity_loader(<em>function</em>)</div>
パラメータ値
パラメータ |
説明 |
---|---|
function | Required 3つの引数を取る関数。2つの文字列、パブリックIDとシステムID、そして第3引数にコンテキスト(4つのキーを持つ配列)。このコールバックは、リソース、リソースをオープンできる文字列、またはNULLを返す必要があります。 |
Technical Details
Return Value: | 成功するとTRUEを返し、失敗するとFALSEを返します |
---|---|
PHP バージョン: |
5.4+ |
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。