(PECL runkit:0.7-0.9)
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: Dépréciée
Depuis la version de runkit 0.5, cette fonction est dépréciée 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.
Instance de la classe Runkit_Sandbox sur laquelle spécifier la gestion des sorties.
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.