Execution de programme Flashcards
string escapeshellarg ( string $arg )
escapeshellarg() ajoute des guillemets simples autour des chaînes de caractères, et ajoute des guillemets puis échappe les guillemets simples de la chaîne. Cela permet de faire passer directement le paramètre arg comme argument Shell, tout en assurant un maximum de sécurité. escapeshellarg() doit être utilisée pour traiter individuellement chacun des arguments à passer au Shell. Les fonctions Shell sont exec(), system() et les opérateurs guillemets obliques.
string escapeshellcmd ( string $command )
escapeshellcmd() échappe tous les caractères de la chaîne command qui pourraient avoir une signification spéciale dans une commande Shell. Cette fonction permet de s’assurer que la commande sera correctement passée à l’exécuteur de commande Shell exec() et system(), ou encore à guillemets obliques.
Les caractères suivants seront échappés : #&;`|*?~<>^()[]{}$\, \x0A et \xFF. ‘ et “ sont échappés que s’ils ne sont pas par paire. Sous Windows, tous ces caractères ainsi que % sont remplacés par un espace.
string exec ( string $command [, array &$output [, int &$return_var ]] )
exec() exécute la commande command.
void passthru ( string $command [, int &$return_var ] )
passthru() est similaire à la fonction exec() car les deux exécutent la commande command. Si l’argument return_var est présent, le code de statut de réponse UNIX y sera placé. Cette fonction devrait être préférée aux commandes exec() ou system() lorsque le résultat attendu est de type binaire, et doit être passé tel quel à un navigateur. Une utilisation classique de cette fonction est l’exécution de l’utilitaire pbmplus qui peut retourner une image. En fixant le résultat du contenu (Content-Type) à image/gif puis en appelant pbmplus pour obtenir une image gif, vous pouvez créer des scripts PHP qui retournent des images.
int proc_close ( resource $process )
proc_close() est similaire à pclose() hormis le fait qu’elle fonctionne avec les processus ouverts par proc_open(). proc_close() attend que le processus process se termine, puis retourne son code de sortie. Si vous avez des pipes ouverts avec ce processus, il faut les fermer avec fclose() avant d’appeler cette fonction pour éviter des verrouillages : le processus peut ne pas pouvoir sortir tant que les pipes sont ouverts.
array proc_get_status ( resource $process )
proc_get_status() lit les données concernant le processus process créé avec la fonction proc_open().
bool proc_nice ( int $increment )
proc_nice() modifie la priorité du processus courant par le paramètre spécifié increment. Un paramètre increment positif atténuera la priorité du processus courant, tandis qu’une valeur négative increment augmentera la priorité.
proc_nice() n’est pas lié à proc_open() et ses fonctions associées d’aucune façon.
resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]] )
proc_open() est similaire à popen() mais fournit un plus grand degré de contrôle sur l’exécution du programme.
bool proc_terminate ( resource $process [, int $signal = 15 ] )
proc_terminate() envoie un signal au processus process (créé avec proc_open()) pour lui indiquer qu’il doit se terminer. proc_terminate() se termine immédiatement après, et n’attend pas l’arrêt réel du processus.
proc_terminate() vous permet de conclure un processus, et de continuer les autres tâches. Vous pouvez tester la présence de votre processus en utilisant la fonction proc_get_status().
string shell_exec ( string $cmd )
shell_exec() est identique aux guillemets obliques.
string system ( string $command [, int &$return_var ] )
system() est la version PHP de la fonction C qui exécute la commande command et retourne le résultat.
L’appel à la fonction system() tente également d’actualiser le buffer de sortie du serveur web après chaque ligne de sortie si PHP fonctionne en tant que module serveur.
Si vous devez exécuter une commande et récupérer tout le résultat sans aucune intervention, utilisez la fonction passthru().