passthru

(PHP 4, PHP 5, PHP 7, PHP 8)

passthruEjecuta un programa externo y muestra el resultado sin procesar

Descripción

passthru(string $command, int &$result_code = null): ?false

passthru() es similar a la función exec() ya que ambas ejecutan el comando command. Si el argumento result_code está presente, el código de estado de respuesta UNIX será colocado allí. Esta función debe preferirse a las funciones exec() o system() cuando el resultado esperado es de tipo binario y debe pasarse sin procesar a un navegador. Un uso clásico de esta función es la ejecución de la utilidad pbmplus que puede devolver una imagen. Al establecer el tipo de contenido (Content-Type) a image/gif y luego llamar a pbmplus para obtener una imagen gif, se pueden crear scripts PHP que devuelven imágenes.

Parámetros

command

El comando a ejecutar.

result_code

Si el argumento result_code está presente, el estado devuelto por el comando Unix será colocado en esta variable.

Valores devueltos

devuelve null en caso de éxito o false en caso de error.

Errores/Excepciones

Emite una advertencia E_WARNING si passthru() no puede ejecutar el comando command.

Genera una excepción ValueError si command está vacío o contiene caracteres nulos.

Historial de cambios

Versión Descripción
8.0.0 Si command está vacío o contiene caracteres nulos, passthru() ahora genera una excepción ValueError. Anteriormente, se emitía una advertencia E_WARNING y se devolvía false.

Notas

Advertencia

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. No hacerlo hará que PHP se congele hasta que termine la ejecución del programa.

Ver también