(PHP 4, PHP 5)
system — 執行外部程序,并且顯示輸出
說明
string system ( string$command
[, int &$return_var
] )
同 C 版本的 system() 函數一樣,
本函數執行 command
參數所指定的命令,
并且輸出執行結果。
如果 PHP 運行在服務器模塊中, system() 函數還會嘗試在每行輸出完畢之后, 自動刷新 web 服務器的輸出緩存。
如果要獲取一個命令未經任何處理的 原始輸出, 請使用 passthru() 函數。
參數
command
要執行的命令。
return_var
如果提供 return_var
參數,
則外部命令執行后的返回狀態將會被設置到此變量中。
返回值
成功則返回命令輸出的最后一行,
失敗則返回 FALSE
范例
Example #1 system() 例程
<?php
echo '<pre>';
// 輸出 shell 命令 "ls" 的返回結果
// 并且將輸出的最后一樣內容返回到 $last_line。
// 將命令的返回值保存到 $retval。
$last_line = system('ls', $retval);
// 打印更多信息
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
?>
注釋
Warning當用戶提供的數據傳入此函數,使用 escapeshellarg() 或 escapeshellcmd() 來確保用戶欺騙系統從而執行任意命令。
Note:
如何程序使用此函數啟動,為了能保持在后臺運行,此程序必須將輸出重定向到文件或其它輸出流。否則會導致 PHP 掛起,直至程序執行結束。
Note: 安全模式 啟用時,可僅可用 safe_mode_exec_dir 執行文件。實際上,現在不允許在到可執行的路徑中存在 .. 組件。
Warning安全模式 啟用時,命令字符串會被 escapeshellcmd() 轉換。因此,echo y | echo x 會變成 echo y | echo x。
參見
exec() - 執行一個外部程序 passthru() - 執行外部程序并且顯示原始輸出 popen() - 打開進程文件指針 escapeshellcmd() - shell 元字符轉義 pcntl_exec() - 在當前進程空間執行指定程序 執行操作符