Executa um programa externo e mostra a saída


system

(PHP 4, PHP 5, PHP 7)

systemExecuta um programa externo e mostra a saída

Descrição

string system ( string $command [, int &$return_var ] )

system() é igual a versão C desta função no que executa o command indicado e mostra o resultado.

A função system() também tenta automaticamente limpar o buffer de saída do servidor mandando os dados para o browser após cada linha de saída se o PHP estiver sendo executado como módulo de servidor.

Se você precisa executar um comando e ter todos os dados do comando passados sem nenhuma interferencia, use a função passthru().

Parâmetros

command

O comando que será executado.

return_var

Se o argumento return_var é fornecido, então o status de retorno do comando executado será escrito para esta variável.

Valor Retornado

Retorna a última linha da saída do comando em sucesso, e FALSE em falha.

Exemplos

Exemplo #1 Exemplo da system()

<?php
echo '<pre>';

// Mostra todo o resultado do comando do shell "ls", e retorna
// a última linha da saída em $last_line. Guarda o valor de retorno
// do comando shell em $retval.
$last_line = system('ls', $retval);

// Mostrando informação adicional
echo '
</pre>
<hr />Última linha da saída: '
.$last_line.'
<hr />Valor de Retorno: '
.$retval;
?>

Notas

Aviso

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.

Aviso

Com o safe mode ativo o comando string é escapado com escapeshellcmd(). Assim echo y | echo x se torna echo y \| echo x.

Veja Também