Annotation of embedaddon/php/ext/libxml/tests/libxml_set_external_entity_loader_basic.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: libxml_set_external_entity_loader() basic test
3: --SKIPIF--
4: <?php if (!extension_loaded('dom')) die('skip'); ?>
5: --FILE--
6: <?php
7: $xml = <<<XML
8: <!DOCTYPE foo PUBLIC "-//FOO/BAR" "http://example.com/foobar">
9: <foo>bar</foo>
10: XML;
11:
12: $dtd = <<<DTD
13: <!ELEMENT foo (#PCDATA)>
14: DTD;
15:
16: libxml_set_external_entity_loader(
17: function ($public, $system, $context) use($dtd){
18: var_dump($public);
19: var_dump($system);
20: var_dump($context);
21: $f = fopen("php://temp", "r+");
22: fwrite($f, $dtd);
23: rewind($f);
24: return $f;
25: }
26: );
27:
28: $dd = new DOMDocument;
29: $r = $dd->loadXML($xml);
30: var_dump($dd->validate());
31:
32: echo "Done.\n";
33:
34: --EXPECT--
35: string(10) "-//FOO/BAR"
36: string(25) "http://example.com/foobar"
37: array(4) {
38: ["directory"]=>
39: NULL
40: ["intSubName"]=>
41: NULL
42: ["extSubURI"]=>
43: NULL
44: ["extSubSystem"]=>
45: NULL
46: }
47: bool(true)
48: Done.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>