(PHP 4, PHP 5, PHP 7)
exec — Исполняет внешнюю программу
$command
   [, array &$output
   [, int &$return_var
  ]] )
   exec() исполняет команду
   command.
  
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. В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути к исполняемому файлу.
В случае работы в безопасном режиме, строка с командой экранируется с помощью escapeshellcmd(). Таким образом echo y | echo x становится echo y \| echo x.