runkit_sandbox_output_handler

(PECL runkit >= 0.7.0)

runkit_sandbox_output_handler Задает функцию для захвата и/или обработки данных из "песочницы".

Описание

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

Обычно все результаты работы в песочнице (использование функций echo или print) будут выведены в родительском окружении. Использование runkit_sandbox_output_handler() позволяет перехватить эти данные функцией вне песочницы.

Замечание: Поддержка песочницы (необходима для runkit_lint(), runkit_lint_file(), и класса Runkit_Sandbox) доступна только начиная с версии PHP 5.1.0 или в специально пропатченных версиях PHP 5.0, а также требует потокобезопасной (thread safe) версии PHP. Для более подробной информации смотрите файл README, поставляемый с пакетом runkit.

Замечание: Функция устарела

Начиная с версии runkit 0.5 данная функция является устаревшей и помечена для удаления в версии 1.0. Обработка вывода песочницы может быть задана с помощью опции output_handler, доступной в виде Array Access для экземпляра 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("Привет\n");
$php->eval('var_dump("Прощу прощения");');
$php->die("Я потерял себя.");
unset(
$php);

echo 
"Песочница завершена\n\n";
echo 
$sandbox_output;
?>

Результат выполнения данного примера:

Песочница завершена

Привет
string(9) "Прощу прощения"
Я потерял себя.