exec() execute la commande command, mais ne renvoie rien comme retour, hormis la dernière ligne du résultat de la commande. Pour exécuter une commande et obtenir le résultat sans aucun traitement, il faut utiliser la fonction passthru().
Si l'argument output est présent, alors ce tableau sera rempli par les lignes retournées par la commande. Il faut noter que si ce tableau contient des éléments, exec() ajoutera les nouvelles lignes à la fin du tableau. Si vous ne voulez pas que les nouveaux éléments soient concaténés, utilisez la fonction unset() avec ce tableau avant de le passer à exec().
Si l'argument return_var est présent en plus du tableau output, alors le statut de retour d'exécution sera inscrit dans cette variable.
Notez que si vous allez fournir des commandes qui proviennent d'un utilisateur, il est avisé d'utiliser la fonction escapeshellcmd() pour s'assurer que l'utilisateur n'essaie pas de profiter des caractères spéciaux pour tromper le système.
Note : Si vous démarrez un programme en utilisant cette fonction, et que vous voulez qu'il continue de fonctionner en tâche de fond, vous devez vous assurez que le résultat de ce programme est redirigé vers un fichier ou une autre méthode d'archivage, car sinon, PHP va attendre la fin de l'exécution du programme.
Voir aussi system(), passthru(), popen(), escapeshellcmd() et les opérateurs guillemets obliques.
Précédent | Sommaire | Suivant |
escapeshellcmd | Niveau supérieur | passthru |