Activa el uso de PHP en las hojas de estilo XSLT

# XSLTProcessor::registerPHPFunctions

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

XSLTProcessor::registerPHPFunctions — Activa el uso de PHP en las hojas de estilo XSLT

### Descripción

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

Este método permite utilizar las funciones PHP como funciones XSLT en las hojas de estilo XSL.

### Parámetros

`functions`

  Utilice este parámetro para restringir las funciones PHP accesibles desde XSLT.

  Este parámetro puede ser uno de los siguientes: un string (nombre de una función), un array indexado que contiene nombres de funciones, o un array asociativo donde las claves representan el nombre de la función y el valor asociado es un callable.

### Errores/Excepciones

- Lanza una ValueError si el nombre de un callback no es válido.
- Levanta una excepción ValueError si `options` contiene una opción inválida.
- Levanta una excepción ValueError si `overrideEncoding` utiliza un codificado desconocido.
- Lanza una TypeError si un callback dado no es llamable.

### Valores devueltos

No se retorna ningún valor.

### Historial de cambios

Versión | Descripción
--- | ---
8.4.0 | Los nombres de callback inválidos ahora lanzan una ValueError. Pasar una entrada no llamable ahora lanza una TypeError.
8.4.0 | Ahora es posible utilizar callable como callbacks cuando se utiliza `functions` con entradas de tipo array.

### Ejemplos

Ejemplo #1 Sencilla llamada a una función PHP desde una hoja de estilo

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

### Ver también

- DOMXPath::registerPhpFunctions() - Registra una función PHP como función XPath

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