La system() Fonction
La fonction du système en PHP prend un argument de chaîne avec la commande à exécuter ainsi que tous les arguments que vous souhaitez avoir passé à cette commande. Cette fonction exécute la commande spécifiée et transfère tout le texte résultant dans le flux de sortie (soit la sortie HTTP dans une situation de serveur Web, soit la console si vous utilisez PHP en tant qu'outil de ligne de commande). Le retour de cette fonction est la dernière ligne de sortie du programme, si elle émet une sortie de texte.
La exec() Fonction
La fonction du système est très utile et puissant, mais l'un des plus gros problèmes avec c'est que tout le texte résultant du programme passe directement au flux de sortie. Il y aura des situations où vous voudrez peut-être formater le texte résultant et l'afficher d'une manière différente, ou ne pas l'afficher du tout.
Pour cela, la fonction exec de PHP est parfaitement adaptée. Au lieu de dumping automatiquement tout le texte généré par le programme en cours d'exécution dans le flux de sortie, il vous donne l'occasion de mettre ce texte dans un tableau retourné dans le second paramètre à la fonction:
La shell_exec() Fonction
La plupart des programmes que nous avons exécutés jusqu'ici ont été, plus ou moins, de vrais programmes1. Cependant, l'environnement dans lequel les utilisateurs Windows et Unix fonctionnent est en réalité beaucoup plus riche que cela. Les utilisateurs de Windows ont la possibilité d'utiliser le programme Windows Command Prompt, cmd.exe Ce programme s'appelle un shell de commande.
La passthru() Fonction
Une fonction fascinante que PHP offre semblable à ceux que nous avons vu jusqu'à présent est la fonction de relais. Cette fonction, comme les autres, exécute le programme auquel vous le dites. Cependant, il continue à envoyer immédiatement la sortie brute de ce programme au flux de sortie avec lequel PHP travaille actuellement (à savoir soit HTTP dans un scénario de serveur Web, soit le shell dans une version de ligne de commande de PHP).
La fonction proc_open() et popen() fonction
proc_open() est similaire à popen(), mais fournit un plus grand degré de contrôle sur l'exécution du programme. cmd est la commande à exécuter par le shell. descriptorspec est un tableau indexé où la clé représente le numéro du descripteur et la valeur représente comment PHP transmet ce descripteur au processus fils. Les pipes seront placées dans un tableau indexé de pointeurs de fichiers qui correspondent à la fin de PHP de tous les tuyaux créés. La valeur de retour est une ressource représentant le processus; vous devriez le libérer en utilisant proc_close() quand vous en aurez fini.
Crédits: http://php.net/ & & Chipmunkninja (lien n'est pas mentionné parce qu'il ne fonctionne pas, erreur 404)
Il y a aussi 'proc_open()' et 'popen()', qui permettent un plus haut degré de contrôle sur le processus engendré. – Christian