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 ativo, todas as palavras seguintes ao comando inicial são tratadas com um único argumento. Assim echo y | echo x se torna echo "y | echo x". |
Veja também exec(), system(), popen(), escapeshellcmd(), e o operador backtick.