Come eseguire comandi di shell via PHP

Questo post tratta di come eseguire comandi di shell via PHP. Quindi, piuttosto che inserire manualmente un comando in Linux per cercare la struttura delle cartelle, lo si fa programmaticamente tramite PHP. La capacità di eseguire comandi di shell tramite PHP è una caratteristica potente e dovrebbe essere usata con attenzione. Non tutti gli hosting provider vi permetteranno di eseguire comandi di shell via PHP.

La funzione PHP per eseguire comandi di shell è: shell_exec(), exec() o system().

Queste funzioni sono molto simili, ma hanno piccole differenze:

  • shell_exec() restituisce l’output completo come una stringa. La stringa può essere NULL quando si verifica un errore o se il comando non produce alcun output.
  • exec() restituisce l’ultima riga del comando eseguito come stringa. NOTA: usate exec() quando avete bisogno di accedere all’uscita del programma. shell_exec() non fornisce informazioni sul codice di uscita del programma.
  • system() è simile a shell_exec() ma visualizza direttamente l’output (senza usare echo() o print()).

shell_exec() & exec() esempio:

Entrambe queste funzioni di shell lavorano allo stesso modo. Notate le differenze precedentemente menzionate.

<?echo shell_exec("ls / -ltr");?>

Risultato:

total 2097248 drwxr-xr-x 2 root root 4096 Apr 26 19:07 opt drwxr-xr-x 2 root root 4096 Apr 26 19:07 media drwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64 lrwxrwxrwx 1 root root ….

La risposta contiene \n interruzioni di riga. Usa str_replace(“\n”, “<BR>”, shell_exec(“ls / -ltr”)) per sostituire i caratteri newline con i BR HTML friendly.

Esempio:

total 2097248drwxr-xr-x 2 root root 4096 Apr 26 19:07 optdrwxr-xr-x 2 root root 4096 Apr 26 19:07 mediadrwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64

esempio system():

La funzione system() è usata anche per eseguire comandi di shell tramite PHP.

<?system("ls / -ltr");?>

Risultato:

total 2097248 drwxr-xr-x 2 root root 4096 Apr 26 19:07 opt drwxr-xr-x 2 root root 4096 Apr 26 19:07 media drwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64 lrwxrwxrwx 1 root root ….

Visita https://anto.online per altri post su PHP!

Chi sono gli autori

Ogni membro della redazione di Anto è un esperto di Cloud a tutti gli effetti. Anto Online è molto orgoglioso di aiutare i colleghi appassionati di Cloud. Fateci sapere se avete un’idea eccellente per il prossimo argomento!

Sostenete la causa

Sostenete Anto Online e offriteci un caffè. Tutto è possibile con caffè e codice.

Acquistami un caffè

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.