Altro
PHP shell_exec() vs exec()
Sto lottando per capire la differenza tra shell_exec()
e exec()
...
Ho sempre usato exec()
per eseguire comandi lato server, quando dovrei usare shell_exec()
?
È shell_exec()
solo un'abbreviazione di exec()
? Sembra essere la stessa cosa con meno parametri.
324
3
shell_exec
restituisce tutto il flusso di output come una stringa.exec
restituisce l'ultima riga dell'output per impostazione predefinita, ma può fornire tutto l'output come un array specificato come secondo parametro.Vedere
Ecco le differenze. Notate le newline alla fine.
Notate che l'uso dell'operatore backtick è identico a
shell_exec()
.Aggiornamento: Dovrei davvero spiegare quest'ultimo. Guardando questa risposta a distanza di anni non so nemmeno io perché sia uscita in bianco! Daniel lo spiega sopra -- è perché
exec
restituisce solo l'ultima linea, e l'ultima linea diifconfig
è vuota.shell_exec
- Esegue il comando tramite shell e restituisce l'output completo come stringaexec
- Esegue un programma esterno.La differenza è che con
shell_exec
si ottiene l'output come valore di ritorno.