array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'uk', ), 'this' => array ( 0 => 'xsltprocessor.registerphpfunctions.php', 1 => 'XSLTProcessor::registerPHPFunctions', 2 => 'Enables the ability to use PHP functions as XSLT functions', ), 'up' => array ( 0 => 'class.xsltprocessor.php', 1 => 'XSLTProcessor', ), 'prev' => array ( 0 => 'xsltprocessor.registerphpfunctionns.php', 1 => 'XSLTProcessor::registerPHPFunctionNS', ), 'next' => array ( 0 => 'xsltprocessor.removeparameter.php', 1 => 'XSLTProcessor::removeParameter', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/xsl/xsltprocessor/registerphpfunctions.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>
(PHP 5 >= 5.0.4, PHP 7, PHP 8)
XSLTProcessor::registerPHPFunctions — Enables the ability to use PHP functions as XSLT functions
This method enables the ability to use PHP functions as XSLT functions within XSL stylesheets.
options
contains an invalid option.
overrideEncoding
is an unknown encoding.
Не повертає значень.
Версія | Опис |
---|---|
8.4.0 | Invalid callback names now throws a ValueError. Passing a non-callable entry now throws a TypeError. |
8.4.0 |
It is now possible to use callables for callbacks
when using functions with array
entries.
|
Приклад #1 Simple PHP Function call from a stylesheet
<?php
$xml = <<<EOB
<allusers>
<user>
<uid>bob</uid>
</user>
<user>
<uid>joe</uid>
</user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:php="http://php.net/xsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:template match="allusers">
<html><body>
<h2>Users</h2>
<table>
<xsl:for-each select="user">
<tr><td>
<xsl:value-of
select="php:function('ucfirst',string(uid))"/>
</td></tr>
</xsl:for-each>
</table>
</body></html>
</xsl:template>
</xsl:stylesheet>
EOB;
$xmldoc = new DOMDocument();
$xmldoc->loadXML($xml);
$xsldoc = new DOMDocument();
$xsldoc->loadXML($xsl);
$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>