首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

runkit_sandbox_output_handler

(PECL runkit >= 0.7.0)

runkit_sandbox_output_handler - 指定一个函数来捕获和/或处理runkit沙箱的输出

描述

代码语言:javascript
复制
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

代码语言:javascript
复制
<?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;
?>

上面的例子将输出:

代码语言:javascript
复制
Sandbox Complete

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

← runkit_return_value_used

runkit_superglobals →

扫码关注腾讯云开发者

领取腾讯云代金券