(PHP 4, PHP 5)
popen — Abre un apuntador de archivo de proceso
Abre un pipe con un proceso ejecutado al bifurcar el comando dado en el primer parámetro.
El comando
El modo
Devuelve un apuntador de archivo idéntico al devuelto por fopen(), con la excepción de que es unidireccional (puede ser usado sólo para lectura o escritura) y debe ser cerrado con pclose(). Este apuntador puede ser usado con fgets(), fgetss(), y fwrite().
Si ocurre un error, se devuelve FALSE.
Example#1 Ejemplo de popen()
<?php
$gestor = popen("/bin/ls", "r");
?>
Si el comando a ser ejecutado no es encontrado, se devuelve un recurso válido. Esto puede parecer extraño, pero tiene sentido; le permite acceder a cualquier mensaje de error devuelto por el intérprete de comandos:
Example#2 Ejemplo de popen()
<?php
error_reporting(E_ALL);
/* Agregar redirección de modo que tengamos stderr. */
$gestor = popen('/ruta/hacia/basura 2>&1', 'r');
echo "'$gestor'; " . gettype($gestor) . "\n";
$read = fread($gestor, 2096);
echo $read;
pclose($gestor);
?>
Note: Si está buscando soporte bidireccional (en dos vías), use proc_open().
Note: Cuando safe mode esta activado, solamente se pueden ejecutar los programas que se encuentren en safe_mode_exec_dir. Por razones practicas, no se permite el uso de .. en el PATH del programa.
Con safe mode activado, todas las palabras que siguan al comando inicial son tratadas como un solo argumento. Asi, echo y | echo x se interpreta como echo "y | echo x".