web-dev-qa-db-fra.com

Quelles sont les différences de system (), exec () et Shell_exec () en PHP?

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

system();
exec();
Shell_exec();

mais quelles sont leurs différences? Malgré leurs applications spécifiques, dans la plupart des cas, les peuvent être également utilisés. Je suis curieux de savoir lequel est préféré quand ils peuvent être également utilisés. Par exemple, pour décompresser un fichier ou compresser un dossier (avec la commande tar), lequel est préféré (probablement du point de vue des performances)?

MISE À JOUR: Dans une autre question, j'ai trouvé un très utile lien décrivant différents aspects de ces fonctions. Je partage le lien ici, car d'autres peuvent utiliser pour mieux comprendre les problèmes de sécurité et d'autres aspects.

63
Googlebot

exec - Exécute un programme externe

système - Exécute un programme externe et affiche la sortie

Shell_exec - Exécute la commande via Shell et retourne la sortie complète sous forme de chaîne

donc si vous n'avez pas besoin de la sortie, j'irais avec exec.

Plus de détails:

89
Gavriel