Descrizione
string
system ( string command [, int &return_var] )
system() è semplicemente come la versione C
della funzione che esegue il
command dato e restituisce in uscita il risultato. Se
viene fornita una variabile come secondo argomento, allora il codice di stato
ritornato dal comando eseguito verrà scritto in tale
variabile.
Avvertimento |
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 vuole avviare un programma tramite questa funzione
e lasciarlo girare in background, occorre essere certi che l output
del programma sia rediretto su un file o qualche altro flusso di output
altrimenti il PHP sarà sospenderà fino a quando il programma non termina.
La chiamata a system() tenta anche di ripulire automaticamente
il buffer di output del web server dopo ogni linea di output se PHP
gira come un modulo server.
Restituisce l'ultima linea del output del comando se ha successo e FALSE
se fallisce.
Se devi eseguire un comando ottenendo tutti i dati restituiti dal comando
direttamente senza alcuna interferenza, usa la funzione
passthru().
Esempio 1. system() example
<?php echo '<pre>'; // Mette in output tutti i risultati della shellcommand "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 />Restituisce il valore: ' . $retval; ?>
|
|
Nota: Quando si abilita la
modalità sicura, si può eseguire
soltanto gli eseguibili presenti nella directory safe_mode_exec_dir.
Per motivi pratici, attualmente, non ` permesso avere ..
come componente del percorso di un eseguibile.
Avvertimento |
Con la modalità sicura attivata,
tutte le parole che seguono il comando iniziale sono trattate come argomenti. Quindi,
echo y | echo x diventa echo "y | echo x". |
Vedere anche exec(),
passthru(), popen(),
escapeshellcmd(),
pcntl_exec(), e l'operatore backtick.