Manual do PHP
Anterior |  | Próxima

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

## Parâmetros

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

## Valores de retornado

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 execuatdo, tenha certesa de definir e usar o parâmetro `output`.

## Exemplos

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

## Notas

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 ativado, a string do comando é escapada com escapeshellcmd(). Então, `echo y | echo x` vira `echo y \| echo x`.

system()
passthru()
escapeshellcmd()
pcntl_exec()
backtick operator

Anterior | Principal | Próxima
escapeshellcmd | Acima | passthru