XSLTProcessor::registerPHPFunctions

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

XSLTProcessor::registerPHPFunctionsActive l'utilisation de PHP dans les feuilles de styles XSLT

Description

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

Cette méthode permet d'utiliser les fonctions PHP en tant que fonctions XSLT dans les feuilles de style XSL.

Liste de paramètres

functions

Utilisez ce paramètre pour restreindre les fonctions PHP accessibles depuis XSLT.

Ce paramètre peut être l'un des suivants : un string (nom d'une fonction), un array indexé contenant des noms de fonctions, ou un array associatif où les clés représentent le nom de la fonction et la valeur associée est un callable.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version Description
8.4.0 Il est désormais possible d'utiliser des callable comme callbacks lorsqu'on utilise restrict avec des entrées de type array.

Exemples

Exemple #1 Appel d'une fonction PHP depuis une feuille de style

<?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);
?>

Voir aussi