(PHP 5 >= 5.4.0, PHP 7)
Changes the default external entity loader
void libxml_set_external_entity_loader ( callable $resolver_function )
Changes the default external entity loader.
Parameters:
resolver_function
A callable that takes three arguments. Two strings, a public id and system id, and a context (an array with four keys) as the third argument. This callback should return a resource, a string from which a resource can be opened, or NULL
.
Returns:
No value is returned.
Examples:
libxml_set_external_entity_loader() example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php $xml = <<<XML <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 ); fwrite( $f , $dtd ); rewind ( $f ); return $f ; } ); $dd = new DOMDocument; $r = $dd ->loadXML( $xml ); var_dump( $dd ->validate()); ?> |
The above example will output:
string(10) "-//FOO/BAR" string(25) "http://example.com/foobar" array(4) { ["directory"] => NULL ["intSubName"] => NULL ["extSubURI"] => NULL ["extSubSystem"] => NULL } bool(true)
See also:
Please login to continue.