A função passthru() é similar a a função
exec() no que ela executa um
command
. Se o argumento
return_var
estiver presente, o código de
retorno de status do comando Unix será colocado aqui. Esta função deve
ser usada no lugar de exec() ou
system() quando a saída do comando Unix é dados
binários que precisam ser passados diretamente de volta para o
browser. Um uso comum para isso é para executar algo como
pbmplus que podem enviar um stream com uma imagem diretamente.
Definindo o Content-type para image/gif
e então chamando o programa para mostrar um gif, você pode criar
scripts PHP que mostram imagens diretamente.
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. |
Veja também exec(), system(), popen(), escapeshellcmd(), e o operador backtick.