From 3440548819e087e97dc950aab0bc0adba0c467e5 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Tue, 25 Aug 2026 11:05:34 +0200 Subject: [PATCH] [Sync EN] exec: document escapeshellarg()/escapeshellcmd() multibyte behavior --- reference/exec/functions/escapeshellarg.xml | 24 +++++++++++------- reference/exec/functions/escapeshellcmd.xml | 28 +++++++++++++-------- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/reference/exec/functions/escapeshellarg.xml b/reference/exec/functions/escapeshellarg.xml index 6922579752..74c2eb30e1 100644 --- a/reference/exec/functions/escapeshellarg.xml +++ b/reference/exec/functions/escapeshellarg.xml @@ -1,6 +1,6 @@ - + @@ -14,7 +14,7 @@ stringescapeshellarg stringarg - + escapeshellarg añade comillas simples alrededor de las cadenas de caracteres, y añade comillas y escapa las comillas simples de la @@ -25,14 +25,19 @@ a pasar al Shell. Las funciones Shell son exec, system y los operadores comillas invertidas. - - + + En Windows, escapeshellarg reemplaza en su lugar los signos de porcentaje, los signos de exclamación (sustitución de variables diferidas) y las comillas dobles con espacios y añade comillas dobles alrededor de la cadena. Además, cada serie de barras invertidas consecutivas (\) es escapada por una barra invertida adicional. - + + + El comportamiento de esta función con cadenas multibyte depende de la + configuración regional LC_CTYPE actual. Los caracteres + no reconocidos serán descartados. Véase setlocale. + @@ -42,9 +47,9 @@ arg - + El argumento a escapar. - + @@ -53,9 +58,9 @@ &reftitle.returnvalues; - + La cadena escapada. - + @@ -78,6 +83,7 @@ system('ls '.escapeshellarg($dir)); &reftitle.seealso; + setlocale escapeshellcmd exec popen diff --git a/reference/exec/functions/escapeshellcmd.xml b/reference/exec/functions/escapeshellcmd.xml index 0f4357d43d..82256cc1fc 100644 --- a/reference/exec/functions/escapeshellcmd.xml +++ b/reference/exec/functions/escapeshellcmd.xml @@ -1,6 +1,6 @@ - + @@ -15,7 +15,7 @@ stringescapeshellcmd stringcommand - + escapeshellcmd escapa todos los caracteres de la cadena command que podrían tener un significado especial en una @@ -23,15 +23,20 @@ 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 (^). - + + + El comportamiento de esta función con cadenas multibyte depende de la + configuración regional LC_CTYPE actual. Los caracteres + no reconocidos serán descartados. Véase setlocale. + @@ -41,9 +46,9 @@ command - + La orden a escapar. - + @@ -52,9 +57,9 @@ &reftitle.returnvalues; - + La cadena escapada. - + @@ -81,14 +86,14 @@ system($escaped_command); &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. - + @@ -110,6 +115,7 @@ $cmd = preg_replace('`(? + setlocale escapeshellarg exec popen