(PECL runkit >= 0.7.0)
runkit_sandbox_output_handler — Spécifie une fonction à capturer et/ou traiter la sortie à partir d'un runkit sandbox
Normalement, toutes les sorties (comme avec echo ou print) seront écrites comme si elles avaient été écrites à partir de la portée du parent. Cependant, l'utilisation de runkit_sandbox_output_handler(), sorties générées par le sandbox (incluant les erreurs), peuvent être capturées par une fonction extérieure à sandbox.
Note: Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.
Note: Obsolète
Depuis la version de runkit 0.5, cette fonction est obsolète et devrait être supprimée de ce paquetage avant la version 1.0. Le gestionnaire de sortie pour une instance donnée de Runkit_Sandbox devrait être lue/fixée en utilisant la syntaxe tableau de décalage montrée sur la page de définition de la classe Runkit_Sandbox.
sandbox
Instance de la classe Runkit_Sandbox sur laquelle spécifier la gestion des sorties.
callback
Nom d'une fonction qui s'attend à un paramètre. La sortie générée par
sandbox
sera envoyée à cette fonction de rappel.
Tout ce qui sera retourné par cette fonction sera affiché normalement.
Si ce paramètre n'est pas passé, alors la gestion des sorties ne sera
pas changée. Si une valeur incorrecte est passée, la gestion des
sorties sera désactivée et sera retournée à l'affichage direct.
Retourne le nom de la fonction de rappel précédemment définie en tant que
gestion des sorties, ou FALSE
si aucun gestionnaire n'avait été
précédemment défini.
Exemple #1 Alimentation de sortie vers une variable
<?php
function capture_output($str) {
$GLOBALS['sandbox_output'] .= $str;
return '';
}
$sandbox_output = '';
$php = new Runkit_Sandbox();
runkit_sandbox_output_handler($php, 'capture_output');
$php->echo("Bonjour\n");
$php->eval('var_dump("Excusez-moi");');
$php->die("Je me suis perdu.");
unset($php);
echo "Sandbox Complété\n\n";
echo $sandbox_output;
?>
L'exemple ci-dessus va afficher :
Sandbox Complété Bonjour string(9) "Excusez-moi" Je me suis perdu.