XSLTProcessor::registerPHPFunctions

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

XSLTProcessor::registerPHPFunctionsAktiviert die Nutzbarkeit von PHP-Funktionen als XSLT-Funktionen

Beschreibung

public XSLTProcessor::registerPHPFunctions(array|string|null $functions = null): void

Diese Methode aktiviert die Nutzbarkeit von PHP-Funktionen als XSLT-Funktionen innerhalb eines XSL-Stylesheets.

Parameter-Liste

functions

Dieser Parameter ermöglicht es, die via XSL aufrufbaren Funktionen einzuschränken.

Dieser Parameter kann eines der folgenden sein: ein String (ein Funktionsname), ein indiziertes Array von Funktionsnamen oder ein assoziatives Array, dessen Schlüssel die Funktionsnamen und die zugehörigen Werte die Callables sind.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version Beschreibung
8.4.0 Es ist nun möglich, Callables als Callbacks zu verwenden, wenn Array-Einträge mit functions kombiniert werden.

Beispiele

Beispiel #1 Einfacher Aufruf einer PHP-Funktion durch ein 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>Benutzer</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);
?>

Siehe auch