Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

libxml_set_external_entity_loader(3) [php man page]

LIBXML_SET_EXTERNAL_ENTITY_LOADER(3)					 1				      LIBXML_SET_EXTERNAL_ENTITY_LOADER(3)

libxml_set_external_entity_loader - Changes the default external entity loader

SYNOPSIS
void libxml_set_external_entity_loader (callable $resolver_function) DESCRIPTION
Changes the default external entity loader. PARAMETERS
o $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. RETURN VALUES
No value is returned. EXAMPLES
Example #1 libxml_set_external_entity_loader(3) 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()); ?> 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
libxml_disable_entity_loader(3). PHP Documentation Group LIBXML_SET_EXTERNAL_ENTITY_LOADER(3)

Check Out this Related Man Page

XML::LibXML::Dtd(3)					User Contributed Perl Documentation				       XML::LibXML::Dtd(3)

NAME
XML::LibXML::Dtd - XML::LibXML DTD Handling SYNOPSIS
use XML::LibXML; $dtd = XML::LibXML::Dtd->new($public_id, $system_id); $dtd = XML::LibXML::Dtd->parse_string($dtd_str); $publicId = $dtd->getName(); $publicId = $dtd->publicId(); $systemId = $dtd->systemId(); DESCRIPTION
This class holds a DTD. You may parse a DTD from either a string, or from an external SYSTEM identifier. No support is available as yet for parsing from a filehandle. XML::LibXML::Dtd is a sub-class of XML::LibXML::Node, so all the methods available to nodes (particularly toString()) are available to Dtd objects. METHODS
new $dtd = XML::LibXML::Dtd->new($public_id, $system_id); Parse a DTD from the system identifier, and return a DTD object that you can pass to $doc->is_valid() or $doc->validate(). my $dtd = XML::LibXML::Dtd->new( "SOME // Public / ID / 1.0", "test.dtd" ); my $doc = XML::LibXML->new->parse_file("test.xml"); $doc->validate($dtd); parse_string $dtd = XML::LibXML::Dtd->parse_string($dtd_str); The same as new() above, except you can parse a DTD from a string. Note that parsing from string may fail if the DTD contains external parametric-entity references with relative URLs. getName $publicId = $dtd->getName(); Returns the name of DTD; i.e., the name immediately following the DOCTYPE keyword. publicId $publicId = $dtd->publicId(); Returns the public identifier of the external subset. systemId $systemId = $dtd->systemId(); Returns the system identifier of the external subset. AUTHORS
Matt Sergeant, Christian Glahn, Petr Pajas VERSION
2.0110 COPYRIGHT
2001-2007, AxKit.com Ltd. 2002-2006, Christian Glahn. 2006-2009, Petr Pajas. LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.18.2 2014-02-01 XML::LibXML::Dtd(3)
Man Page