runkit_sandbox_output_handler
(PECL runkit:0.7-0.9)
runkit_sandbox_output_handler —
Specify a function to capture and/or process output from a runkit sandbox
说明
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.
Note: 对沙盒的支持(是函数
runkit_lint()、runkit_lint_file()
和 Runkit_Sandbox 类所必须的)仅在 PHP 5.1 中,或在加过特别补丁的 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.