(PHP 4, PHP 5, PHP 7)
exec — Executa um programa externo
$command
[, array &$output
[, int &$return_var
]] )
exec() executa o
command
dado.
command
O comando que será executado.
output
Se o argumento output
estiver presente, então a matriz especificada
será prenchida com cada linha da saída do comando. Espaços ao final, como
\n, não são incluídos nesta matriz. Note que se a matriz
já contiver alguns elementos, exec() irá adicionar ao final da matriz.
Se você não quiser que a função adicione elementos, use
unset() antes de passar ela para
exec().
return_var
Se o argumento return_var
esta presente
junto com o argumento output
, então o status de retorno
do comando executado será escrito nesta variável.
A ultima linha do resultado do comando. Se você precisa executar um comando e ter todos os dados passados diretamente de volta sem qualquer interferência, use a função passthru().
Para pegar a saída do comando executado, tenha certeza
de definir e usar o parâmetro output
.
Exemplo #1 Um exemplo exec()
<?php
// Mostra o nome de quem é o dono do processo php/httpd
// (em um sistema com o executável "whoami" no path)
echo exec('whoami');
?>
Quando permitindo dados fornecidos por usuário para ser passado para esta função, use escapeshellarg() ou escapeshellcmd() para se certificar que os usuários não tentarão enganar o sistema com comandos arbitrários.
Nota:
Se um programa é iniciado com esta função, e deseja que ele continue rodando em background, a saída do programa precisa ser redirecionada para um arquivo ou outro output stream. Se isso não é feito, o que irá ocorrer é que o PHP ficará esperando até que a execução do programa termine.
Nota: Quando safe mode está ativo, você só pode executar arquivos dentro dosafe_mode_exec_dir. Por razões praticas não é permitido ter componentes .. no caminho do executável.
Com o safe mode ativo o comando string é escapado com escapeshellcmd(). Assim echo y | echo x se torna echo y \| echo x.