PHP 5.6.0beta1 released

xslt_set_error_handler

(PHP 4 >= 4.0.4)

xslt_set_error_handlerImposta un error handler per un processore XSLT

Descrizione

void xslt_set_error_handler ( resource $xh , mixed $handler )

Imposta una funzione di error handler per il processore XSLT dato da xh, questa funzione sarà richiamata quando ha luogo un errore nella trasformazione XSLT (questa funzione è anche richiamata per gli avvisi).

Elenco dei parametri

xh

L'identificatore del processore XSLT, creato da xslt_create().

handler

La funzione utente deve ricevere quattro parametri: il processore XSLT, il livello di errore, il codice di errore e un array dei messaggi. La funzione può essere rappresentata come:

error_handler ( resource $xh , int $error_level , int $error_code , array $messages )

Valori restituiti

Nessun valore viene restituito.

Esempi

Example #1 Esempio di uso di xslt_set_error_handler()

<?php
 
// Il nostro gestore degli errori XSLT
function xslt_error_handler($handler$errno$level$info)
{
  
// Per ora visualizza i parametri
  
var_dump(func_get_args());
}
 
// contenuto XML:
$xml='<?xml version="1.0"?>
<para>
 oops, I misspelled the closing tag
</pata>'
;
 
// Contenuto 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));
 
?>

Il precedente esempio visualizzerà qualcosa simile a:

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"
  }
}

Vedere anche:

  • Vedere xslt_set_object() - Sets the object in which to resolve callback functions se si desidera utilizzare come handler un metodo di un oggetto

add a note add a note

User Contributed Notes 2 notes

up
0
jocke n0spam at selincite dot com
11 years ago
Addition to the last note. in the array I have used array($this, "myMethod") to make it use an internal function in a class.
I reckon this is how it is meant to work (not tested)
$myObj = new MyObj()
xslt_set_error_handler_($xh, array($myObj, "myErrorMethod"));
up
0
Anonymous
11 years ago
To set the error handler to the instance of an object, use the:

xslt_set_error_handler($xh, array($obj, $method))

syntax.
To Top