PHP è un linguaggio di programmazione utilizzato per sviluppare ricche applicazioni Web interattive . Tuttavia, si consiglia di chiamare programmi esterni o comandi del sistema dall'interno di un programma PHP per aggiungere ulteriori funzionalità di migliorare l'efficienza. Questa operazione può essere eseguita dal exec () di PHP o di comandi di sistema ( ) , che variano leggermente in termini di funzionalità e di sintassi. Utilizzare
exec ( ) e system () i comandi sono utilizzati da un programma PHP per eseguire comandi di sistema o programmi esterni e script. Questo è importante per estendere le funzionalità del linguaggio PHP e di interfacciarsi con altre applicazioni in esecuzione sul server . PHP verrà sospesa fino a quando il programma esterno termina l'esecuzione a meno output viene reindirizzato a un file o un altro buffer di uscita .
Differenze
La differenza principale tra la exec ( ) e il sistema di ( ) i comandi è come uscita dal programma esterno viene gestito. Il comando di sistema ( ) scrive automaticamente i risultati del comando eseguito al buffer di uscita corrente . Il comando exec ( ) restituisce opzionalmente l'output del comando eseguito come una variabile array aggiuntivo .
Sintassi
comandi di sistema ( ) exec ( ) e avere sintassi opzionale leggermente diversi, anche se entrambi possono essere eseguite solo con il percorso del programma esterno . Entrambi i comandi richiedono un comando formattato come una stringa , e di avere una variabile di ritorno opzionale formattata come un puntatore ad un int per indicare lo stato di ritorno del comando eseguito -set a 0 quando eseguito senza errori e qualsiasi altro valore in cui è stato rilevato un errore . Il comando exec ( ), include, inoltre, un parametro di output formattato come un puntatore ad un array , che includono ogni riga di output del comando eseguito senza lasciare uno spazio vuoto , come il carattere di nuova riga .
Sicurezza
Quando l'esecuzione di comandi o programmi esterni , è particolarmente importante considerare la sicurezza dell'operazione . Quando si utilizza qualsiasi input fornito dall'utente , utilizzare la escapeshellarg () o funzioni escapeshellcmd () per rimuovere le operazioni potenzialmente dannose. Le migliori pratiche coinvolgono solo l'esecuzione di un noto lista bianca di comandi , piuttosto che solo rimuovendo noti comandi dannosi .