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.
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.