函式名稱: expect://()
適用版本: PHP 5, PHP 7
函式描述: expect:// 包裝器是一個可以將 expect 庫中的函式包裝成 PHP 擴充套件的網路函式。使用它,可以在 PHP 環境中執行與 expect 庫相應的功能,透過此函式可以產生連線到遠端主機的網路流。
用法:
resource expect_popen ( string $command )
引數:
- command: 執行的命令字串。
返回值: 成功時將返回包裝後的資源流,失敗時返回 false。
示例:
$stream = expect_popen("ssh [email protected]");
if ($stream === false) {
die("無法開啟流!");
}
// 向遠端主機傳送命令並獲取返回結果
fwrite($stream, "ls -l\n");
expect_expectl($stream, array(
array("file or directory", function($stream, $match) {
echo "遠端主機檔案目錄: " . trim($match[0]) . "\n";
}),
array(">", function($stream, $match) {
echo "命令執行完成!";
})
));
// 關閉流
fclose($stream);
上述示例中,使用 expect_popen() 函式透過 SSH 連線到遠端主機,並將命令 ls -l
傳送至遠端主機。之後,透過 expect_expectl() 函式獲取遠端主機的返回結果,並根據匹配的條件進行相應的處理。最後,關閉了流。
請注意,expect://() 函式需要 PHP 安裝 expect 擴充套件庫,並且相關的底層 expect 庫也需要在系統中安裝並可用。