escapeshellcmd
(PHP 4, PHP 5, PHP 7, PHP 8)
escapeshellcmd — shell 元字元轉義
說明
   escapeshellcmd(string 
  $command): stringescapeshellcmd() 對字串中可能會欺騙 shell 命令執行任意命令的字元進行轉義。 此函式保證使用者輸入的數據在傳送到 exec() 或 system() 函式,或者 執行操作符 之前進行轉義。
    反斜線(\)會在以下字元之前插入:
   &#;`|*?~<>^()[]{}$\, \x0A
   和 \xFF。 ' 和 "
   僅在不配對兒的時候被轉義。
   在 Windows 平臺上,所有這些字元以及 % 和 ! 字元都會被空格代替。
  
參數
- 
command
- 
      要轉義的命令。 
返回值
轉義后的字串。
範例
示例 #1 escapeshellcmd() example
<?php
// 我們故意允許任意數量的參數
$command = './configure '.$_POST['configure_options'];
$escaped_command = escapeshellcmd($command);
 
system($escaped_command);
?>
警告
    
 escapeshellcmd() 應被用在完整的命令字串上。 即使如此,攻擊者還是可以傳入任意數量的參數。 請使用 escapeshellarg() 函式 對單個參數進行轉義。
更新日誌
| 版本 | 說明 | 
|---|---|
| 5.4.43, 5.5.27, 5.6.11 | 感嘆號會被空格所替換。 | 
參見
- escapeshellarg() - 把字串轉碼為可以在 shell 命令里使用的參數
- exec() - 執行一個外部程式
- popen() - 打開程序檔案指針
- system() - 執行外部程式,並且顯示輸出
- 執行運算子