system

(PHP 4, PHP 5, PHP 7, PHP 8)

system執(zhí)行外部程序,并且顯示輸出

說(shuō)明

system(string $command, int &$return_var = ?): string

同 C 版本的 system() 函數(shù)一樣, 本函數(shù)執(zhí)行 command 參數(shù)所指定的命令, 并且輸出執(zhí)行結(jié)果。

如果 PHP 運(yùn)行在服務(wù)器模塊中, system() 函數(shù)還會(huì)嘗試在每行輸出完畢之后, 自動(dòng)刷新 web 服務(wù)器的輸出緩存。

如果要獲取一個(gè)命令未經(jīng)任何處理的 原始輸出, 請(qǐng)使用 passthru() 函數(shù)。

參數(shù)

command

要執(zhí)行的命令。

return_var

如果提供 return_var 參數(shù), 則外部命令執(zhí)行后的返回狀態(tài)將會(huì)被設(shè)置到此變量中。

返回值

成功則返回命令輸出的最后一行, 失敗則返回 false

范例

示例 #1 system() 例程

<?php
echo '<pre>';

// 輸出 shell 命令 "ls" 的返回結(jié)果
// 并且將輸出的最后一樣內(nèi)容返回到 $last_line。
// 將命令的返回值保存到 $retval。
$last_line system('ls'$retval);

// 打印更多信息
echo '
</pre>
<hr />Last line of the output: ' 
$last_line '
<hr />Return value: ' 
$retval;
?>

注釋

警告

當(dāng)傳入用戶提供的數(shù)據(jù)到本函數(shù)時(shí),應(yīng)使用 escapeshellarg()escapeshellcmd() 來(lái)防止用戶欺騙系統(tǒng)執(zhí)行任意命令。

注意:

如何程序使用此函數(shù)啟動(dòng),為了能保持在后臺(tái)運(yùn)行,此程序必須將輸出重定向到文件或其它輸出流。否則會(huì)導(dǎo)致 PHP 掛起,直至程序執(zhí)行結(jié)束。

參見