函式名:expect_popen() 適用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8
函式說明:expect_popen() 函式使用了 expect 擴充套件庫來執行命令,並返回一個能夠用於讀取和寫入輸出/輸入流的資源控制代碼。
用法:
resource expect_popen ( string $command )
引數:
- command:要執行的命令及其引數,類似於在命令列中輸入的命令。
返回值: 如果成功執行命令,函式將返回一個能夠讀取和寫入輸出/輸入流的資源控制代碼,如果發生錯誤,將返回 false。
示例:
$stream = expect_popen('ssh user@remote_host');
if ($stream !== false) {
// 向遠端主機傳送命令
fwrite($stream, "ls -la\n");
// 讀取遠端主機的輸出
$output = '';
while (($line = fread($stream, 4096)) !== false) {
$output .= $line;
}
echo $output;
// 關閉資源控制代碼
fclose($stream);
} else {
echo "執行命令失敗";
}
上述示例首先呼叫 expect_popen() 開啟了一個 ssh 連線,並獲取了一個用於讀寫輸出/輸入流的資源控制代碼。然後,透過 fwrite() 向遠端主機傳送一個命令。接著使用 fread() 從輸出流中讀取輸出,並將其儲存在變數 $output 中。最後,關閉資源控制代碼並輸出結果。如果 expect_popen() 執行失敗,則會輸出錯誤資訊。請注意,這個示例是一個簡單的展示,實際應用時可能需要更多的錯誤處理和安全措施。