popen
(PHP 4, PHP 5)
popen — Abre um processo como ponteiro de arquivo
Descrição
Abre uma pipe para um processo executado ao se dar um fork para o comando dado por command .
Parâmetros
- command
-
O comando
- mode
-
O modo
Valor Retornado
Retorna um ponteiro de arquivo idêntico ao retornado por fopen(), exceto que ele é unidirecional (somente pode ser usado para leitura ou gravação) e tem que ser fechado com pclose. Este ponteiro pode ser usado com fgets(), fgetss() e fwrite().
Caso um erro ocorra retorna FALSE.
Exemplos
Example#1 Exemplo de popen()
<?php
$handle = popen ("/bin/ls", "r");
?>
Se o comando a ser executado não for encontrado um recurso válido será retornado. Isso pode parecer esquisito, mas tem sentido: permite que você acesse a mensagem de erro retornado pelo sistema operacional.
Example#2 Exemplo da popen()
<?php
error_reporting(E_ALL);
/* Add redirection so we can get stderr. */
$handle = popen('/path/to/spooge 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>
Notas
Nota: Se você precisa de suporte bidirecional (dois caminhos), use proc_open().
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.