查詢

expect://()函式—用法及示例

「 可以產生連線到遠端主機的網路流 」


函式名稱: 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 庫也需要在系統中安裝並可用。

補充糾錯
上一個函式: exp()函式
下一個函式: expect_expectl()函式
熱門PHP函式
分享連結