(PHP 4, PHP 5, PHP 7)
system — Executa um programa externo e mostra a saída
$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().
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.
Retorna a última linha da saída do comando em sucesso, e FALSE
em falha.
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;
?>
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.
Com o safe mode ativo o comando string é escapado com escapeshellcmd(). Assim echo y | echo x se torna echo y \| echo x.