runkit_sandbox_output_handler
runkit_sandbox_output_handler
(PECL runkit >= 0.7.0)
runkit_sandbox_output_handler - 指定一个函数来捕获和/或处理runkit沙箱的输出
描述
mixed runkit_sandbox_output_handler ( object $sandbox [, mixed $callback ] )
通常,任何输出(如使用echo或print)都将被输出,就像从父级的范围打印一样。然而,使用runkit_sandbox_output_handler()
,sandbox生成的输出(包括错误)可以被 sandbox.外的函数捕获。
注意
:sandbox支持(runkit_lint(),runkit_lint_file()和Runkit_Sandbox
类所需的)仅适用于PHP 5.1.0或专门修补的PHP 5.0版本,并且要求启用线程安全性。请参阅runkit软件包中包含的README文件以获取更多信息。
注意
:已弃用
从runkit版本0.5开始,此功能已弃用
,计划在1.0发行版之前从软件包中删除。给定Runkit_Sandbox实例的输出处理程序可以使用Runkit_Sandbox类定义页面上显示的数组偏移语法读取/设置。
参数
sandbox
Runkit_Sandbox类的对象实例,用于设置输出处理。
callback
期望一个参数的函数的名称。生成的输出sandbox
将传递给此回调。回调返回的任何内容都将正常显示。如果此参数未通过,则输出处理将不会更改。如果传递了非真值,则输出处理将被禁用,并将恢复为直接显示。
返回值
返回之前定义的输出处理程序回调的名称,或者返回FALSE
如果之前没有定义处理程序的话。
例子
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.
← runkit_return_value_used
runkit_superglobals →