Funciones del Sistema de Archivos
PHP Manual

popen

(PHP 4, PHP 5)

popenAbre un proceso de un puntero a un archivo

Descripción

resource popen ( string $command , string $mode )

Abre una tubería hacia un proceso ejecutado bifurcando el comando dado por comando.

Parámetros

command

El comando

mode

El modo

Valores devueltos

Devuelve un puntero al archivo idéntico al devuelto por fopen(), excepto que es uni-direccional (sólo se puede usar para lectura o escritura) y debe ser cerrado con pclose(). Este puntero se puede usar con fgets(), fgetss(), y fwrite(). Cuando el modo es 'r', el puntero al archivo devuelto iguala al STDOUT del comando, cuando el modo es 'w', el puntero al archivo devuelto iguala al STDIN del comando.

Si se produjo un error, devuelve FALSE.

Ejemplos

Ejemplo #1 Ejemplo de popen()

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

Si el comando a ejecutar no puede ser encontrado, se devuelve un recurso válido. Esto puede parecer extraño, pero tiene sentido; permite el acceso a cualquier mensaje de error devuelto por el intérprete de comandos:

Ejemplo #2 Ejemplo de popen()

<?php
error_reporting
(E_ALL);

/* Añade redirección, por lo que podemos obtener stderr. */
$gestor popen('/ruta/al/ejecutable 2>&1''r');
echo 
"'$gestor'; " gettype($gestor) . "\n";
$leer fread($gestor2096);
echo 
$leer;
pclose($gestor);
?>

Notas

Nota:

Si está buscando un soporte bi-direccional (dos-vías), use proc_open().

Nota: Cuando safe mode está habilitado, sólo se pueden ejecutar los archivos que se encuentren dentro de safe_mode_exec_dir. Por razones prácticas, actualmente no se le permite tener componentes .. en la ruta al ejecutable.

Advertencia

Con safe mode habilitado, la cadena de comandos se escapa con escapeshellcmd(). Por esto, echo y | echo x quedaría echo y \| echo x.

Ver también


Funciones del Sistema de Archivos
PHP Manual