runkit_sandbox_output_handler

Specify a function to capture and/or process output from a runkit sandbox

&reftitle.description; `mixed` `runkit_sandbox_output_handler` `object` `sandbox` `mixed` `callback`

Ordinarily, anything output (such as with `echo` or `print`) will be output as though it were printed from the parent's scope. Using `runkit_sandbox_output_handler` however, output generated by the sandbox (including errors), can be captured by a function outside of the sandbox.

¬e.runkit.sandbox;

### Deprecated

As of runkit version 0.5, this function is deprecated and is scheduled to be removed from the package prior to a 1.0 release. The output handler for a given Runkit_Sandbox instance may be read/set using the array offset syntax shown on the Runkit_Sandbox class definition page.

&reftitle.parameters;

`sandbox`

- Object instance of Runkit_Sandbox class on which to set output handling.

`callback`

- Name of a function which expects one parameter. Output generated by `sandbox` will be passed to this callback. Anything returned by the callback will be displayed normally. If this parameter is not passed then output handling will not be changed. If a non-truth value is passed, output handling will be disabled and will revert to direct display.

&reftitle.returnvalues;

Returns the name of the previously defined output handler callback, or &false; if no handler was previously defined.

&reftitle.examples;

### Feeding output to a 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("Hello\n");
    $php->eval('var_dump("Excuse me");');
    $php->die("I lost myself.");
    unset($php);

    echo "Sandbox Complete\n\n";
    echo $sandbox_output;
    ?>

&example.outputs;

    Sandbox Complete

    Hello
    string(9) "Excuse me"
    I lost myself.