popen

(PHP 4, PHP 5, PHP 7)

popenAbre um processo como ponteiro de arquivo

Descrição

popen ( string $command , string $mode ) : resource

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 (pode ser usado somente para leitura ou gravação) e tem que ser fechado com pclose(). Este ponteiro pode ser usado com fgets(), fgetss() e fwrite(). Quando o modo é 'r', o ponteiro de arquivo retornado é igual ao STDOUT do comando; quando o modo é 'w', o ponteiro de arquivo é igual ao STDIN do comando.

Se um erro ocorrer, retorna false.

Exemplos

Exemplo #1 Exemplo da popen()

<?php
$handle 
popen("/bin/ls""r");
?>

Se o comando a ser executado não for encontrado, um resource válido é retornado. Isso pode parecer estranho, mas tem sentido: permite que você acesse qualquer 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/executable 2>&1''r');
echo 
"'$handle'; " gettype($handle) . "\n";
$read fread($handle2096);
echo 
$read;
pclose($handle);
?>

Notas

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.

Aviso

With safe mode enabled, the command string is escaped with escapeshellcmd(). Thus, echo y | echo x becomes echo y \| echo x.

Veja Também

  • pclose() - Fecha um processo de um ponteiro de arquivo
  • fopen() - Abre um arquivo ou URL
  • proc_open() - Executa um comando e abre ponteiros para entrada e saída