(PHP 4, PHP 5)
popen — Abre um processo como ponteiro de arquivo
$command
, string $mode
)
Abre uma pipe para um processo executado ao se dar um fork
para o comando dado por command
.
command
O comando
mode
O modo
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
.
Exemplo #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.
Exemplo #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);
?>
Nota:
Se você precisa de suporte bidirecional (dois caminhos), use proc_open().
Nota: When safe mode is enabled, you can only execute files within the safe_mode_exec_dir. For practical reasons, it is currently not allowed to have .. components in the path to the executable.
With safe mode enabled, the command string is escaped with escapeshellcmd(). Thus, echo y | echo x becomes echo y \| echo x.