system
(PHP 4, PHP 5)
system — Executa um programa externo e mostra a saÃda
Descrição
system() é igual a versão C desta função no que executa o command indicado e mostra o resultado. Se é dada uma variável como segundo argumento, então o código de status de retorno será escrito nesta variável.
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.
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.
Retorna a última linha da saÃda do comando em caso de sucesso ou FALSE em caso de falha.
Se você precisa executar um comando e ter todos os dados do comando passados sem nenhuma interferencia, use a função passthru().
Example#1 Exemplo 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;
?>
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.
Com safe mode ativado, a string do comando é escapada com escapeshellcmd(). Então, echo y | echo x vira echo y \| echo x.
Veja também exec(), passthru(), popen(), escapeshellcmd(), pcntl_exec() e backtick operator.