函式名: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()
只負責跳脫字元串中的特殊字元,並不能自動將轉義後的字串包裝在引號內。這是為了確保字串在各種命令或環境中都能夠正常執行。