(PHP 4, PHP 5, PHP 7, PHP 8)
escapeshellcmd — Protège les caractères spéciaux du Shell
$command): string
   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 % et ! sont précédés d'un
   accent circonflexe (^).
  
commandLa commande à échapper.
La chaîne échappée.
Exemple #1 Exemple avec escapeshellcmd()
<?php
// Nous autorisons un nombre arbitraire d'arguments de façon intentionnelle ici.
$command = './configure '.$_POST['configure_options'];
$escaped_command = escapeshellcmd($command);
 
system($escaped_command);
?>
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 :
    
<?php
$cmd = preg_replace('`(?<!^) `', '^ ', escapeshellcmd($cmd));