exec
(PHP 4, PHP 5)
exec — Исполняет внешнюю программу
Описание
string exec
( string $command
[, array &$output
[, int &$return_var
]] )
Список параметров
-
command
-
Команда (имя программы с аргументами - прим.пер.), которая будет исполнена.
-
output
-
Если параметр output указан, то
массив будет заполнен строками вывода программы.
Завершающие пробелы, такие как \n (перевод строки - прим.пер.),
включены в массив не будут. Обратите внимание, что если массив уже содержит
какие-либо элементы перед вызовом функции exec(), то
вывод команды будет дописан в конец массива. Если
же вы не хотите дополнять предыдущее содержимое массива, следует вызвать
функцию unset() с именем массива в качестве аргумента
перед его передачей в качестве аргумента функции exec().
-
return_var
-
Если заданы оба параметра return_var и
output, то при выходе эта
переменная будет содержать статус завершения внешней программы.
Возвращаемые значения
Последняя строка вывода при исполнении заданной команды. Если требуется
исполнить команду и получить все данные программы обратно без какой-либо
обработки, следует использовать функцию passthru().
Для получения вывода исполняемой программы, убедитесть, что параметр
output инициализирован и используется.
Примеры
Пример #1 Пример функции exec()
<?php
// выводит имя пользователя, от имени которого запущен процесс php/httpd
// (применимо к системам с командой "whoami" в системном пути)
echo exec('whoami');
?>
Примечания
ВниманиеЕсли вы собираетесь передавать функции
пользовательские данные, используйте функции
escapeshellarg() или escapeshellcmd()
для того, чтобы пользователи не смогли обмануть систему, запустив произвольную команду.
Замечание:
Если вы собираетесь использовать эту функцию
в программе, работающей в качестве демона, убедитесь, что стандартный вывод
функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть
до конца выполнения программы.
Замечание: В случае работы в
безопасном режиме, вы можете запускать что-либо только в пределах
safe_mode_exec_dir.
В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути
к исполняемому файлу.