(PHP 4, PHP 5, PHP 7, PHP 8)
system — 執(zhí)行外部程序,并且顯示輸出
$command
, int &$return_var
= ?): string
同 C 版本的 system() 函數(shù)一樣,
本函數(shù)執(zhí)行 command
參數(shù)所指定的命令,
并且輸出執(zhí)行結果。
如果 PHP 運行在服務器模塊中, system() 函數(shù)還會嘗試在每行輸出完畢之后, 自動刷新 web 服務器的輸出緩存。
如果要獲取一個命令未經(jīng)任何處理的 原始輸出, 請使用 passthru() 函數(shù)。
command
要執(zhí)行的命令。
return_var
如果提供 return_var
參數(shù),
則外部命令執(zhí)行后的返回狀態(tài)將會被設置到此變量中。
成功則返回命令輸出的最后一行,
失敗則返回 false
示例 #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;
?>
當傳入用戶提供的數(shù)據(jù)到本函數(shù)時,應使用 escapeshellarg() 或 escapeshellcmd() 來防止用戶欺騙系統(tǒng)執(zhí)行任意命令。
注意:
如何程序使用此函數(shù)啟動,為了能保持在后臺運行,此程序必須將輸出重定向到文件或其它輸出流。否則會導致 PHP 掛起,直至程序執(zhí)行結束。