xslt_set_scheme_handler
xslt_setopt
Fonctions XSLT
PHP Manual

# xslt_set_scheme_handlers

(PHP 4 >= 4.0.6)

xslt_set_scheme_handlers — Configure un gestionnaire de Scheme pour un processeur XSLT

### Description

void xslt_set_scheme_handlers ( resource `$xh` , array `$handlers` )

Configure le gestionnaire de scheme (gestionnaire XPath) pour le document.

### Liste de paramètres

`xh`

  L'identifiant du processus XSLT, créé par la fonction xslt_create().

`handlers`

  Un tableau possédant les clés suivantes : "get_all", "open", "get", "put", et "close".

  Chaque entrée doit être un nom de fonction ou un tableau du format suivant : array($obj, "method").

  Notez que le tableau fourni ne doit pas nécessairement contenir tous les éléments du gestionnaire (bien que cela reste possible), mais il doit uniquement correspondre au format "handler" => "function" décrit ci-dessus.

  Chacune des fonctions individuelles de scheme appelée est au format suivant :

      string   get_all(resource processor, string scheme, string rest)
      resource open(resource processor, string scheme, string rest)
      int      get(resource processor, resource fp, string &data)
      int      put(resource processor, resource fp, string data)
      void     close(resource processor, resource fp)

### Valeurs de retour

Aucune valeur n'est retournée.

### Exemples

Exemple #1 Exemple avec xslt_set_scheme_handlers()

Par exemple, voici une implémentation de la fonction PHP "file_exists()".

`<?php
// Définition du gestionnaire
function mySchemeHandler($processor, $scheme, $rest)
{
$rest = substr($rest,1); // pour effacer le premier '/', automatiquement ajouté par le moteur
if ($scheme == 'file_exists') {
// Le résultat est retourné dans une chaîne XML
return '<?xml version="1.0" encoding="UTF-8"?><root>' . (file_exists($rest) ? 'true' : 'false') . '</root>';
}
}
$SchemeHandlerArray = array('get_all' => 'mySchemeHandler');
// Démarre le moteur
$params = array();
$xh = xslt_create();
xslt_set_scheme_handlers($xh, $SchemeHandlerArray);
$result = xslt_process($xh, "myFile.xml", "myFile.xsl", NULL, array(), $params);
xslt_free($xh);
echo $result;
?>`

Ensuite, dans la feuille de style, vous pouvez tester si un fichier existe avec :

    <xsl:if test="document('file_exists:anotherXMLfile.xml')/root='true'">
     <!-- Le fichier existe -->
    </xsl:if>

### Voir aussi

- xslt_set_scheme_handler()

xslt_set_scheme_handler
xslt_setopt
Fonctions XSLT
PHP Manual