PHP マニュアル
前のページ |  | 次のページ

# runkit_sandbox_output_handler

(PECL)

runkit_sandbox_output_handler -- サンドボックス内での出力を取得・処理するための関数を指定する

## 説明

mixed runkit_sandbox_output_handler ( object sandbox [, mixed callback] )

通常、（echo() や print() などの） あらゆる出力は、親のスコープから出力しているかのように出力されます。 しかし、runkit_sandbox_output_handler() を使用すると サンドボックス内の出力（エラーを含む）をサンドボックス外で受け取ることが 可能です。

> 注意: サンドボックスのサポート (runkit_lint(), runkit_lint_file(), および Runkit_Sandbox クラスで使用)は、PHP 5.1 以降または特別なパッチを適用した PHP 5.0 でのみ利用可能であり、スレッドセーフを有効にしておく必要があります。 詳細については、runkit パッケージに含まれる README ファイルを参照してください。

> 非推奨: runkit バージョン 0.5 以降この関数は非推奨となっており、1.0 が リリースされるまでに削除される予定です。指定した Runkit_Sandbox インスタンスの出力ハンドラは、配列オフセット構文を使用して 取得/設定が可能です。この方法について、 Runkit_Sandbox のクラス定義で説明しています。

## パラメータ

`sandbox`

  出力の処理を設定する Runkit_Sandbox クラスのインスタンス。

`callback`

  ひとつのパラメータを受け取る関数の名前。 `sandbox` による出力がこのコールバックに 渡されます。コールバックが返す値は通常通り表示されます。 このパラメータが渡されなかった場合、出力の操作方法は変わりません。 真でない値が渡された場合、出力の操作は無効となり直接表示されます。

## 返り値

前に定義されていた出力ハンドラコールバックの名前を返します。 ハンドラが定義されていなかった場合は `FALSE` を返します。

## 例

例 1. 出力を変数に送る

`<?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