(PHP 4, PHP 5)
exec — Ejecutar un programa externo
$command
   [, array &$output
   [, int &$return_var
  ]] )
   exec() ejecuta el comando
   dado.
  
commandEl 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.
      
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.
  
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');
?>
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.