XSLTProcessor::registerPHPFunctions
(PHP 5 >= 5.0.4, PHP 7, PHP 8)
Enables the ability to use PHP functions as XSLT functions
Description
This method enables the ability to use PHP functions as XSLT functions within XSL stylesheets.
Parameters
functionsUse this parameter to only allow certain functions to be called from XSLT.
This parameter can be one of the following: a
string(a function name), an indexedarrayof function names, or an associativearraywith keys being the function name and the associated value being thecallable.
Return Values
Void
Changelog
| Version | Description |
|---|---|
| 8.4.0 | It is now possible to use callables for callbacks when using functions with array entries. |
Examples
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);
?>See Also
DOMXPath::registerPhpFunctions