escapeshellcmd
En esta página
escapeshellcmd
Protege los caracteres especiales del Shell
Descripción#
escapeshellcmd(string $command): string
```php
`escapeshellcmd` 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](#language.operators.execution).
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 (`^`).
## Parámetros
`command`
La orden a escapar.
## Valores devueltos
La cadena escapada.
## Ejemplos
Ejemplo con `escapeshellcmd`
```php
Notas#
[!WARNING] La función
escapeshellcmddebe 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ónescapeshellargdebería ser utilizada en su lugar.[!WARNING] Los espacios no son escapados por
escapeshellcmdlo 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:
`` <?php $cmd = preg_replace('(?<!^) `', '^ ', escapeshellcmd($cmd));```
Véase también#
escapeshellarg, exec, popen, system, las comillas invertidas