Annotation of embedaddon/php/ext/libxml/tests/libxml_set_external_entity_loader_basic.phpt, revision 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>