Active l'utilisation de PHP dans les feuilles de styles XSLT

# XSLTProcessor::registerPHPFunctions

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

XSLTProcessor::registerPHPFunctions — Active l'utilisation de PHP dans les feuilles de styles XSLT

### Description

public function 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`

  Utiliser 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.

### Erreurs / Exceptions

- Lance une ValueError si le nom d'une fonction de rappel n'est pas valide.
- Lève une exception ValueError si `options` contient une option invalide.
- Lève une exception ValueError si `overrideEncoding` utilise un encodage inconnu.
- Lance une TypeError si une fonction de rappel donnée n'est pas appelable.

### Valeurs de retour

Aucune valeur n'est retournée.

### Historique

Version | Description
--- | ---
8.4.0 | Les noms de fonction de rappel invalides lancent maintenant une ValueError. Passer une entrée non appelable lance maintenant une TypeError.
8.4.0 | Il est désormais possible d'utiliser des callable comme callbacks lorsqu'on utilise `functions` 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

- DOMXPath::registerPhpFunctions() - Enregistre une fonction PHP comme fonction XPath

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open