Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xslt_set_scheme_handlers(3) [php man page]

XSLT_SET_SCHEME_HANDLERS(3)						 1					       XSLT_SET_SCHEME_HANDLERS(3)

xslt_set_scheme_handlers - Set the scheme handlers for theXSLTprocessor

SYNOPSIS
void xslt_set_scheme_handlers (resource $xh, array $handlers) DESCRIPTION
Registers the scheme handlers (XPath handlers) for the document. PARAMETERS
o $ xh -The XSLT processor link identifier, created with xslt_create(3). o $handlers - An array with the following keys: "get_all", "open", "get", "put", and "close". Every entry must be a function name or an array in the following format: array($obj, "method"). Note that the given array does not need to contain all of the different scheme handler elements (although it can), but it only needs to conform to the "handler" => "function" format described above. Each of the individual scheme handler functions called are in the formats below: string get_all(resource processor, string scheme, string rest) resource open(resource processor, string scheme, string rest) int get(resource processor, resource fp, string &data) int put(resource processor, resource fp, string data) void close(resource processor, resource fp) RETURN VALUES
No value is returned. EXAMPLES
Example #1 xslt_set_scheme_handlers(3) example For example, here is an implementation of the "file_exists()" PHP function. <?php // Definition of the handler function mySchemeHandler($processor, $scheme, $rest) { $rest = substr($rest,1); // to remove the first / automatically added by the engine if ($scheme == 'file_exists') { // result is embedded in a small xml string return '<?xml version="1.0" encoding="UTF-8"?><root>' . (file_exists($rest) ? 'true' : 'false') . '</root>'; } } $SchemeHandlerArray = array('get_all' => 'mySchemeHandler'); // Start the engine $params = array(); $xh = xslt_create(); xslt_set_scheme_handlers($xh, $SchemeHandlerArray); $result = xslt_process($xh, "myFile.xml", "myFile.xsl", NULL, array(), $params); xslt_free($xh); echo $result; ?> Then, inside the stylesheet, you can test whether a certain file exists with: <xsl:if test="document('file_exists:anotherXMLfile.xml')/root='true'"> <!-- The file exist --> </xsl:if> SEE ALSO
xslt_set_scheme_handler(3). PHP Documentation Group XSLT_SET_SCHEME_HANDLERS(3)

Check Out this Related 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)
Man Page