Esegui comando shell in PHP usando Exec

Esegui comando shell in PHP usando Exec

Lo script PHP viene utilizzato principalmente per lo sviluppo di applicazioni Web ma può essere utilizzato anche per altri scopi. PHP ha alcune funzioni integrate per eseguire comandi relativi al sistema. Exec () è uno di questi. Viene utilizzato per eseguire comandi shell o qualsiasi programma dallo script PHP. Come questa funzione può essere utilizzata in PHP è mostrata in questo tutorial.

Sintassi:

String Exec (String $ Command [, Array & $ output [, int & $ return_var]])

Questa funzione può richiedere tre argomenti. Il primo argomento è obbligatorio che prenderà il comando di sistema. Gli altri due argomenti sono opzionali. Il secondo argomento viene utilizzato per archiviare l'output del comando in un array. Il terzo argomento di questa funzione viene utilizzato per archiviare lo stato di ritorno del comando eseguito. Questa funzione restituisce l'ultima riga dall'output del comando eseguito.

Esempio-1: Uso della funzione Exec () senza argomenti opzionali

L'uso di base della funzione Exec () ha mostrato in questo tutorial. Crea un file PHP con il seguente script per sapere come la funzione Exec () restituisce l'output del comando. 'PWD'Il comando ha usato nel comando First Exec () dello script che restituisce una riga di output. 'ls -la'Il comando è stato utilizzato nel secondo comando Exec () che può restituire più righe di output. Se un comando restituisce più righe, l'output mostrerà l'ultima riga come output.

// archivia l'output del comando eseguito
$ output1 = exec ('pwd');
// Stampa il valore di ritorno
echo $ output1;
eco "
";
// Memorizza l'ultima riga del comando eseguito
$ output2 = exec ('ls -la');
// Stampa il valore di ritorno
echo $ output2;
?>

Produzione:

Il seguente output apparirà dopo aver eseguito lo script sopra dal server. 'PWD'Il comando restituisce la directory di lavoro corrente come output mostrato nel primo output. 'ls -la'Il comando restituisce le informazioni sui dettagli dell'elenco delle directory e il secondo output mostra l'ultima riga dall'output del comando.

Esempio 2: stampare tutti i valori del comando eseguito

Nell'esempio precedente, non viene utilizzato alcun argomento opzionale nella funzione Exec (). Il seguente esempio mostra l'uso di argomenti opzionali della funzione Exec (). Crea un file PHP con il seguente script. In questo script sono usati due argomenti opzionali di Exec (). 'ls -l'Il comando viene utilizzato nel primo argomento che restituisce l'elenco delle directory. $ output La variabile viene utilizzata qui per archiviare l'output del comando in un array. $ status La variabile viene utilizzata per archiviare il valore di stato di ritorno del comando eseguito. L'output del comando verrà stampato come array e ogni valore dell'array di output verrà stampato utilizzando il ciclo "per".

// archivia l'output del comando eseguito in un array
exec ('ls -l', $ output, $ status);
// stampa tutti i valori di restituzione del comando eseguito come array
print_r ($ output);
eco "
";
// Stampa l'output del comando eseguito in ogni riga
foreach ($ output come $ value)

Echo $ Value."
";

// Stampa lo stato di ritorno del comando eseguito
Echo $ Status;
?>

Produzione:

Il seguente output apparirà dopo aver eseguito lo script sopra dal server. L'output mostra l'array che contiene l'output del comando, 'ls -l' e ogni valore dell'array in ogni riga.

Esempio-3: stampare tutti i file PHP della directory corrente

L'esempio seguente mostra l'elenco di tutti i file PHP della directory corrente utilizzando la funzione Exec (). Qui, il 'ls -l *.PHP'Il comando viene utilizzato qui per scoprire l'elenco di tutti i file PHP della directory corrente.

 Il tag viene utilizzato nello script per stampare il contenuto dell'array con il formato strutturato.

// archivia l'output del comando eseguito in un array
Exec ('ls -l *.php ', $ output);
// Stampa l'output del comando eseguito
eco "
";
print_r ($ output);
eco "
";
?>

Produzione:

Il seguente output apparirà dopo aver eseguito lo script sopra dal server.

Esempio-4: esegui uno script bash

In che modo qualsiasi script bash può essere eseguito utilizzando la funzione Exec () ha mostrato in questo esempio. Crea un file bash denominato ciclo continuo.sh con il seguente script che stamperà tutti i numeri pari da 1 a 20.

ciclo continuo.sh

#!/Bin/Bash

#Initializza il contatore

contatore = 1
#Iterano il ciclo fino a quando il valore del contatore $ è inferiore o uguale a 20

mentre [$ Counter -le 20]
Fare
#Print i numeri pari

Se [[$ Counter%2 -EQ 0]]
Poi
#Print $ counter senza Newline

Echo "$ Counter"
fi
#Increment $ counter di 1

((Counter ++))
Fatto

Crea un file PHP con il seguente script per eseguire lo script bash. 'Bash Loop.sh'è usato come il primo argomento della funzione Exec () che eseguirà il ciclo continuo.sh File di script. 'per ciascuno'Loop viene utilizzato per stampare ogni valore del $ output con spazio.

// esegui lo script bash
Exec ('Bash Loop.sh ', $ output);
Echo "Tutti i numeri pari entro 1-20 sono:
";
// stampa il nostro uput usando loop
foreach ($ output come $ value)

Echo $ Value."";

?>

Produzione:

Il seguente output apparirà dopo aver eseguito lo script sopra dal server. L'output mostra tutti i numeri pari entro 1 a 20.

Esempio-5: eseguire il comando 'DIR' usando Exec ()

Il comando 'dir' funziona come il comando 'ls'. L'esempio seguente mostra come il comando "dir" può essere eseguito usando uno script PHP. Crea un file PHP con il seguente script che memorizza l'output del comando "DIR" nell'array denominato $ output e il valore di stato nella variabile denominata $ return. funzione var_dump () è usato qui per stampare la struttura del $ output Array con le informazioni sul tipo di dati.

// esegui il comando 'dir'
Exec ("Dir", $ output, $ return);
// Stampa il valore dello stato di ritorno
echo "Il valore di restituzione del comando" dir "è $ return \ n";
eco "
";
// Stampa l'output del comando
var_dump ($ output);
eco "
";
?>

Produzione:

Il seguente output apparirà dopo aver eseguito lo script sopra dal server.

Conclusione:

In questo tutorial sono stati spiegati diversi usi della funzione Exec () per aiutare i programmatori PHP a conoscere il modo per eseguire il comando shell utilizzando lo script PHP. Alcune altre funzioni esistono anche in PHP per fare lo stesso tipo di attività.