(PHP 4, PHP 5)
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: When safe mode is enabled, you can only execute files within the safe_mode_exec_dir. For practical reasons, it is currently not allowed to have .. components in the path to the executable.
With safe mode enabled, the command string is escaped with escapeshellcmd(). Thus, echo y | echo x becomes echo y \| echo x.