escapeshellcmdProtège les caractères spéciaux du Shell
&reftitle.description;
stringescapeshellcmdstringcommandescapeshellcmd é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 % et ! sont précédés d'un
accent circonflexe (^).
&reftitle.parameters;
command
La commande à échapper.
&reftitle.returnvalues;
La chaîne échappée.
&reftitle.examples;
Exemple avec escapeshellcmd
]]>
La fonction escapeshellcmd doit être utilisée
sur toute la chaîne de commande, et elle autorise
les personnes mal intentionnées de passer un nombre
d'arguments arbitraire. Pour échapper un seul argument,
la fonction escapeshellarg devrait être
utilisée à la place.
Les espaces ne sont pas échappés par escapeshellcmd
ce qui peut être problématique sur Windows avec des chemins tel que :
C:\Program Files\ProgramName\program.exe.
Ceci peut être mitigé en utilisant le snippet de code suivant :
&reftitle.seealso;
escapeshellargexecpopensystemles guillemets obliques