passthru
(PHP 4, PHP 5)
passthru — Ejecuta un programa externo y muestra la salida en bruto
Descripción
$command
[, int &$return_var
] )
La función passthru() es parecida a la función exec() que ejecuta un command.
Esta función deberia ser usada en lugar de exec() o system() cuando la salida desde la línea de comandos de Unix sean datos binarios, los cuales sea necesario pasar directamente al navegador. Un uso común para esto, sería para ejecutar algo como las utilidades pbmplus que pueden mostrar directamente una imagen en streaming.
Estableciendo el Content-type como image/gif y llamando al programa pbmplus para mostrar un gif, se podrian crear scripts PHP que mostrasen imágenes directamente.
Parámetros
-
command -
El comando que será ejecutado.
-
return_var -
Si está presente el argumento
return_var, el valor de retorno de la línea de comandos de Unix será colocado aquí.
Valores devueltos
No devuelve ningún valor.
Notas
Si se va a permitir que datos provenientes del usuario sean enviados a esta función, habría que utilizar escapeshellarg() o escapeshellcmd() para asegurarse que el usuario no intenta engañar al sistema para que ejecute comandos arbitrarios.
Nota:
Si ejecutamos un programa con esta función y queremos dejarlo ejecutándose en segundo plano, hay que asegurarse que la salida del mismo es redireccionada a un fichero u otro flujo de salida o PHP se quedará esperando hasta que la ejecución del programa termine.
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.
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
- exec() - Ejecutar un programa externo
- system() - Ejecutar un programa externo y mostrar su salida
- popen() - Abre un proceso de un puntero a un fichero
- escapeshellcmd() - Escapar meta-caracteres del intérprete de comandos
- backtick operator