函数名:escapeshellarg()
适用版本:所有 PHP 版本
用法:escapeshellarg() 函数用于转义给命令行参数添加引号的字符串,以便在 shell 命令中安全使用。该函数主要用于防止命令注入攻击。
语法:string escapeshellarg ( string $arg )
参数:
- $arg:要转义的字符串,可以包含特殊字符或空格。
返回值:返回转义后的字符串。
示例:
$arg = "some text; echo 'Hello World'";
$escapedArg = escapeshellarg($arg);
$cmd = "echo " . $escapedArg;
echo shell_exec($cmd); // 输出:some text; echo 'Hello World'
在上面的示例中,原始字符串 $arg
包含特殊字符和命令分隔符。使用 escapeshellarg()
函数转义后的字符串 $escapedArg
在 shell 命令中被以引号包围,从而保证该字符串在命令中的安全性。然后,使用 shell_exec()
函数执行命令,最终将原始字符串输出到命令行上。
请注意,在使用该函数时,必须使用引号包围所生成的命令行参数。这是因为 escapeshellarg()
只负责转义字符串中的特殊字符,并不能自动将转义后的字符串包装在引号内。这是为了确保字符串在各种命令或环境中都能够正常运行。