escapeshellcmdProtege los caracteres especiales del Shell
&reftitle.description;
stringescapeshellcmdstringcommandescapeshellcmd escapa todos los
caracteres de la cadena command
que podrían tener un significado especial en una
orden Shell. Esta función permite asegurarse de que la orden será
correctamente pasada al ejecutor de órdenes Shell
exec y system, o incluso
a comillas invertidas.
Los siguientes caracteres serán escapados:
&#;`|*?~<>^()[]{}$\, \x0A
y \xFF. ' y "
son escapados solo si no están en pares. En Windows, todos estos caracteres
así como % y ! son precedidos por
un circunflejo (^).
&reftitle.parameters;
command
La orden a escapar.
&reftitle.returnvalues;
La cadena escapada.
&reftitle.examples;
Ejemplo con escapeshellcmd
]]>
&reftitle.notes;
La función escapeshellcmd debe ser utilizada
sobre toda la cadena de orden, y permite
a personas malintencionadas pasar un número arbitrario
de argumentos. Para escapar un solo argumento,
la función escapeshellarg debería ser
utilizada en su lugar.
Los espacios no son escapados por escapeshellcmd
lo cual puede ser problemático en Windows con rutas como:
C:\Program Files\ProgramName\program.exe.
Esto puede ser mitigado utilizando el siguiente fragmento de código:
&reftitle.seealso;
escapeshellargexecpopensystemlas comillas invertidas