exec() esegue il comando passato da command, la funzione non invia nessun output. Restituisce semplicemente l'ultima linea dal risultato del comando. Se si ha bisogno di eseguire un comando ed avere tutti i dati passati direttamente indietro senza alcuna interferenza, usare la funzione passthru().
Se l'argomento array è presente, allora tale vettore specificato verrà riempito con ogni linea del output del comando. Notare che se il vettore contiene già degli elementi, exec() li aggiungerà in coda al vettore. Se non si vuole che la funzione aggiunga elementi, eseguire un unset() sul vettore prima di passarlo ad exec().
Se viene passato l'argomento return_var assieme all'argomento array, allora lo stato del comando eseguito verrà scritto in questa variabile.
Attenzione |
Si osservi che se si intende allocare dati che giungono dall'utente per passarli a questa funzione, si dovrebbe usare escapeshellarg() o escapeshellcmd() per assicurarsi che l'utente non forzi il sistema ad eseguire comandi arbitrari. |
Nota: Notare anche che se si esegue un programma usando questa funzione e lo si vuole lasciare in esecuzione in background, ci si deve assicurare che l'output del programa venga rediretto ad un file o a qualche altro flusso di output, altrimenti PHP rimarrà bloccato in attesa fino alla fine dell'esecuzione del programma.
Vedere anche system(), passthru(), popen(), escapeshellcmd() e l'operatore backtick.