system

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

systemEsegue un programma esterno e mostra l'output

Descrizione

system(string $command, int &$return_var = ?): string

system() è proprio come la versione C della funzione in quanto esegue il comando command dato e restituisce il risultato.

La chiamata a system() prova anche a svuotare automaticamente il buffer di output del web server dopo ogni linea di output se PHP è in esecuzione come modulo server.

Se è necessario eseguire un comando ottenendo direttamente tutti i dati restituiti dallo stesso senza alcuna interferenza, usare la funzione passthru().

Elenco dei parametri

command

Il comando che verrà eseguito.

return_var

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

Valori restituiti

Restituisce l'ultima riga dell'output del comando in caso di successo e false in caso di fallimento.

Esempi

Example #1 Esempio di system()

<?php
echo '<pre>';

// Mette nell'output tutti i risultati del comando da shell "ls", e restituisce
// l'ultima linea di output nella $last_line. Memorizza il valore restituito
// del comando da shell in $retval.
$last_line = system('ls', $retval);

// Stampa informazioni aggiuntive
echo '
</pre>
<hr />L\'ultima linea dell\'output: '
. $last_line . '
<hr />Valore di ritorno: '
. $retval;
?>

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.

Vedere anche: