exec

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

execEsegue un programma esterno

Descrizione

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

exec() esegue il command passato.

Elenco dei parametri

command

Il comando che verrà eseguito.

output

Se l'argomento output è presente, allora l' array specificato verrà riempito con ogni linea del output del comando. I fine riga, come \n, non sono inclusi in questo array. Notare che se l'array contiene già degli elementi, exec() li aggiungerà in coda all'array. Se non si vuole che la funzione aggiunga elementi, eseguire un unset() sull'array prima di passarlo ad exec().

return_var

Se viene passato l'argomento return_var assieme all'argomento output, allora lo stato di ritorno del comando eseguito verrà scritto in questa variabile.

Valori restituiti

L'ultima riga dal risultato del comando. Se si ha bisogno di eseguire un comando ed ottenere tutti i dati dello stesso direttamente senza alcuna interferenza, usare la funzione passthru().

Per ottenere l'output del comando eseguito, assicurarsi di impostare ed utilizzare il parametro output.

Esempi

Example #1 Un esempio di exec()

<?php
// restituisce lo username del proprietario del processo php/httpd in esecuzione
// (su un sistema con l'eseguibile "whoami" nel path)
echo exec('whoami');
?>

Note

Avviso

Se si permette di passare a questa funzione i dati provenineti dagli input utente, si dovrebbe utilizzare la funzione escapeshellarg() oppure escapeshellcmd() in modo da essere sicuri che gli utenti non possano compromettere il sistema eseguendo comandi arbitrari.

Nota:

Se si avvia un programma con questa funzione e si vuole lasciarlo in esecuzione in background, ci si deve accertare che l'output del programma venga redirezionato verso un file o qualche altro stream di output, altrimenti PHP si fermerà finché l'esecuzione del programma sarà terminata.

Nota:

On Windows exec() will first start cmd.exe to launch the command. If you want to start an external program without starting cmd.exe use proc_open() with the bypass_shell option set.

Vedere anche: