exec() ejecuta la orden indicada en command, sin embargo no produce ninguna salida. Simplemente devuelve la última línea de la salida resultado de la orden. Si necesita ejecutar una orden y obtener directamente todos los datos devueltos por la orden sin ninguna interferencia, use la función PassThru().
Si el parámetro array existe, entonces el array especificado se rellenará con cada una de las líneas de la salida producida por la orden. Notar que si el array ya contiene algunos elementos, exec() los añadirá al final del array. Si no quiere que la función añada dichos elementos, haga un unset() sobre el array antes de pasárselo a exec().
Si el parámetro return_var existe a la vez que el parámetro array, entonces el valor de retorno de la orden ejecutada se guardará en dicha variable.
Destacar que si usted va a permitir que se pasen datos provenientes de usuarios a esta función, entonces debería usar EscapeShellCmd() para asegurarse de que los usuarios no pueden engañar al sistema para ejecutar instrucciones arbitrarias.
Véase también system(), PassThru(), popen(), EscapeShellCmd(), y el operador ` (apóstrofe invertido).