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

Функция запишет в эту переменную статус возврата Unix-команды, если в параметр result_code передали аргумент.

Возвращаемые значения

Функция возвращает null, если выполнилась успешно, или false, если возникла ошибка.

Ошибки

Функция выдаёт ошибку уровня E_WARNING, если функция passthru() не может выполнить команду command.

Функция выбрасывает исключение ValueError, если параметр command не указали или содержит нулевые байты.

Список изменений

Версия Описание
8.0.0 Если параметр command не указали или содержит нулевые байты, функция passthru() теперь выбрасывает исключение ValueError; раньше функция выдавала ошибку уровня E_WARNING и возвращала false.

Примечания

Внимание

Команду экранируют функцией escapeshellcmd(), а отдельные аргументы команды функцией escapeshellarg(), когда разрешают передавать в функцию пользовательские данные, чтобы пользователи обманом не заставили систему выполнить произвольные команды.

Замечание:

При запуске программы с этой функцией вывод программы перенаправляют в файл или другой поток вывода, чтобы программа продолжала работать в фоновом режиме. PHP зависнет до завершения выполнения программы, если не перенаправить вывод.

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

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