# exec

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

exec — Ejecutar un programa externo

### Descripción

exec(string `$command`, array `&$output` = ?, int `&$return_var` = ?): string

exec() ejecuta el `comando` dado.

### Parámetros

`command`

  El comando que será ejecutado.

`output`

  Si el argumento `output` está presente, entonces el array especificado será llenado con cada línea de la salida del comando. El espacio en blanco extra, como `\n`, no es incluido en este array. Note que si el array ya contiene algunos elementos, exec() anexará sus resultados al final del array. Si no desea que la función anexe los elementos, use unset() sobre el array antes de pasarla a exec().

`return_var`

  Si el argumento `return_var` está presente junto con el argumento `output`, entonces el status de retorno del comando ejecutado será escrito en esta variable.

### Valores devueltos

La última línea de los resultados del comando. Si necesita ejecutar un comando y tener todos los datos desde el comando pasados directamente de vuelta sin interferencia alguna, use la función passthru().

Para obtener la salida del comando ejecutado, asegúrese de definir y usar el parámetro `output`.

### Ejemplos

Ejemplo #1 Un ejemplo de exec()

`<?php
// imprime el nombre de usuario que tiene control del proceso php/httpd activo
// (en un sistema con el ejecutable "whoami" disponible en la ruta)
echo exec('whoami');
?>`

### 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 o PHP se quedará esperando hasta que la ejecución del programa termine.

### Ver también

- system() - Ejecutar un programa externo y mostrar su salida
- passthru() - Ejecuta un programa externo y muestra la salida en bruto
- escapeshellcmd() - Escapar meta-caracteres del intérprete de comandos
- pcntl_exec() - Executes specified program in current process space
- operador de comilla invertida