Quelles sont les différences de système(), exec() et shell_exec() en PHP?

Il est possible d'exécuter une commande externe par trois fonctions PHP de

system();
exec();
shell_exec();

mais quelles sont leurs différences? En dépit de leurs applications spécifiques, dans la plupart des cas, elles peuvent être également utilisées. Je suis curieux de savoir qui est privilégiée lorsqu'ils peuvent également être utilisés. Par exemple, pour la décompression d'un fichier ou la compression d'un dossier (avec la commande tar), qui est préférée (probablement du point de vue des performances)?

Mise à JOUR: Dans une autre question, j'ai trouvé un très utile lien décrivant les différents aspects de ces fonctions. J'ai partager le lien ici, comme d'autres peuvent utiliser pour mieux comprendre les questions de sécurité et d'autres aspects.

  • De ne pas être snippy, mais ce qu'a fait le manuel de dire sur les fonctions respectives?
  • Aussi, vous avez oublié passthru () 🙂
  • J'ai lu le manuel, mais je ne comprends pas la préférence pour chaque fonction. Pour de nombreux cas, ils peuvent également être utilisés. Je veux un point de vue pratique.
  • Double Possible de stackoverflow.com/questions/732832/...
  • vous avez raison, cette question traite de la même question, mais j'ai été incapable de le trouver. Une réponse a un lien utile pour les explications détaillées. Merci!
  • Double Possible de PHP exec() et system() vs passthru() et php shell_exec() et exec()

InformationsquelleAutor Googlebot | 2012-05-31