(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
Функция запишет в эту переменную статус возврата Unix-команды,
если в параметр result_code
передали аргумент.
Функция возвращает null
, если выполнилась успешно, или false
, если возникла ошибка.
Функция выдаёт ошибку уровня E_WARNING
, если функция passthru()
не может выполнить команду command
.
Функция выбрасывает исключение ValueError, если параметр command
не указали или содержит нулевые байты.
Версия | Описание |
---|---|
8.0.0 |
Если параметр command не указали или содержит нулевые байты,
функция passthru() теперь выбрасывает исключение ValueError;
раньше функция выдавала ошибку уровня E_WARNING и возвращала false .
|
Команду экранируют функцией escapeshellcmd(), а отдельные аргументы команды функцией escapeshellarg(), когда разрешают передавать в функцию пользовательские данные, чтобы пользователи обманом не заставили систему выполнить произвольные команды.
Замечание:
При запуске программы с этой функцией вывод программы перенаправляют в файл или другой поток вывода, чтобы программа продолжала работать в фоновом режиме. PHP зависнет до завершения выполнения программы, если не перенаправить вывод.