(PHP 4 >= 4.0.4)
xslt_set_error_handler — Configure le gestionnaire d'erreurs du processeur XSLT
xslt_set_error_handler() configure le gestionnaire d'erreurs du processeur XSLT identifié par xh . Le gestionnaire sera appelé à chaque fois qu'une erreur survient durant les transformations XSLT (pour les notices aussi).
La fonction utilisateur doit accepter quatre paramètres : le processeur XSLT, le niveau d'erreur, le code erreur et un tableau de messages. La fonction peut être définie comme : error_handler
( resource $xh, int $error_level, int $error_code, array $messages )
Exemple 2844. Exemple avec xslt_set_error_handler()
<?php
// Notre gestionnaire d'erreur
function
xslt_error_handler
(
$handler
,
$errno
,
$level
,
$info
)
{
// pour le moment, on regarde juste ce que l'on reçoit
var_dump
(
func_get_args
());
}
// Contenu XML :
$xml
=
'<?xml version="1.0" encoding="iso-8859-1"?>
<para>
oops, j\'ai mal écrit la balise fermante
</pata>'
;
// Contenu XSL :
$xsl
=
'<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<strong><xsl:value-of select="para"/></strong>
</xsl:template>
</xsl:stylesheet>'
;
$xh
=
xslt_create
();
xslt_set_error_handler
(
$xh
,
"xslt_error_handler"
);
echo
xslt_process
(
$xh
,
'arg:/_xml'
,
'arg:/_xsl'
,
NULL
, array(
"/_xml"
=>
$xml
,
"/_xsl"
=>
$xsl
));
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
array(4) { [0]=> resource(1) of type (XSLT Processor) [1]=> int(3) [2]=> int(0) [3]=> array(6) { ["msgtype"]=> string(5) "error" ["code"]=> string(1) "2" ["module"]=> string(9) "Sablotron" ["URI"]=> string(9) "arg:/_xml" ["line"]=> string(1) "4" ["msg"]=> string(34) "XML parser error 7: mismatched tag" } }
xslt_set_object() si vous voulez utiliser une méthode d'un objet comme gestionnaire.