runkit_sandbox_output_handler

(PECL runkit >= 0.7.0)

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

说锟斤拷

runkit_sandbox_output_handler ( object $sandbox [, mixed $callback ] ) : mixed

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.

Note: 沙锟斤拷支锟街o拷锟斤拷 runkit_lint()锟斤拷runkit_lint_file() 锟斤拷锟斤拷锟斤拷锟斤拷 Runkit_Sandbox 锟斤拷锟斤拷锟斤拷锟借)锟斤拷锟斤拷锟斤拷锟斤拷 PHP 5.1.0 锟斤拷 PHP 5.0 锟斤拷锟截憋拷锟睫诧拷锟芥本锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟竭程帮拷全锟斤拷锟斤拷锟斤拷锟斤拷息锟缴参硷拷 runkit 锟斤拷锟叫碉拷 README 锟侥硷拷锟斤拷

Note: 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.

锟斤拷锟斤拷

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.

锟斤拷锟斤拷值

Returns the name of the previously defined output handler callback, or FALSE if no handler was previously defined.

锟斤拷锟斤拷

Example #1 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;
?>

锟斤拷锟斤拷锟斤拷锟教伙拷锟斤拷锟斤拷锟�

Sandbox Complete

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