exec

(PHP 3, PHP 4 , PHP 5)

exec -- Executa um programa externo

Descrição

string exec ( string command [, array output [, int return_var]] )

exec() executa o command dado, em todo o caso ele não mostra nada. Ele simplesmente retorna a última linha do resultado do comando. Se você precisar executar o comando e ter todos os dados do comando passado diretamente de volta sem interferencia, use a função passthru().

Se o argumento output estiver presente, então a matriz especificada será prenchida com cada linha da saída do comando. Finais de linha, 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().

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.

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');
?>

Atenção

Se você for permitir que dados vindos do usuário sejam passados para essa função, eles precisam passar por escapeshellarg() ou escapeshellcmd() para se certificar que os usuários não tentarão enganar o sistema com comandos arbitrários.

Nota: Se você iniciar um programa com essa função e deseja que ele continue rodando em background, você precisa garantir que as saídas do programa sejam redirecionadas para um arquivo ou outro suporte a stream senão o PHP irá esperar até que a execução do programa termine.

Nota: Quando o safe mode estiver ativo, você só pode chamar executáveis dentro de safe_mode_exec_dir. Por razões práticas não é permitido haver .. no caminho do executável.

Atenção

Com safe mode ativo, todas as palavras seguintes ao comando inicial são tratadas com um único argumento. Assim echo y | echo x se torna echo "y | echo x".

Veja também system(), passthru(), popen(), escapeshellcmd(), pcntl_exec(), e backtick operator.