passthru

(PHP 4, PHP 5, PHP 7, PHP 8)

passthruВыполнить внешнюю программу и отобразить необработанный вывод

Описание

passthru(string$command, int&$result_code = null): ?false

Функция 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 зависнет вплоть до конца выполнения программы.

Смотрите также

  • exec() - Выполнить внешнюю программу
  • system() - Выполнить внешнюю программу и отобразить вывод
  • popen() - Открывает файловый указатель процесса
  • escapeshellcmd() - Экранировать метасимволы командной строки
  • Оператор исполнения
To Top