array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.passthru.php', 1 => 'passthru', ), 'up' => array ( 0 => 'ref.exec.php', 1 => 'Функции запуска программ', ), 'prev' => array ( 0 => 'function.exec.php', 1 => 'exec', ), 'next' => array ( 0 => 'function.proc-close.php', 1 => 'proc_close', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/exec/functions/passthru.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
passthru — Выполнить внешнюю программу и отобразить необработанный вывод
Функция passthru() похожа на функцию
exec() в том, что она выполняет команду
command
. Эта функция должна быть
использована вместо функции exec() или
system(), когда вывод команды Unix
представляет собой двоичные данные, которые необходимо передать непосредственно в
браузер. Стандартное использование этой функции - выполнение таких утилит как
pbmplus, которые выводят непосредственно поток изображения. Установив
Content-type в image/gif
и
затем вызвав программу pbmplus для вывода gif, вы можете создать
PHP-скрипты, которые выводят изображения напрямую в браузер.
command
Команда, которая будет выполнена.
result_code
Если присутствует аргумент result_code
, то
код возврата Unix-команды будет помещён здесь.
Возвращает null
в случае успешного выполнения или false
, если возникла ошибка.
Выдаёт ошибку уровня E_WARNING
, если функция passthru()
не может выполнить команду command
.
Выбрасывает исключение ValueError, если параметр command
не указан или содержит нулевые байты.
Версия | Описание |
---|---|
8.0.0 |
Если параметр command не указан или содержит нулевые байты,
функция passthru() теперь выбрасывает исключение ValueError;
ранее она выдавала ошибку уровня E_WARNING и возвращала false .
|
Если нужно передавать функции пользовательские данные, вызывают функции escapeshellarg() или escapeshellcmd(), чтобы пользователи не смогли обмануть систему, запустив произвольную команду.
Замечание:
Если нужно вызвать эту функцию в программе, работающей в качестве демона, проверяют, что стандартный вывод функции направлен в файл или другой поток, иначе PHP зависнет вплоть до конца выполнения программы.