查詢

expect_popen()函式—用法及示例

「 讀取和寫入輸出/輸入流的資源控制代碼 」


函式名: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() 執行失敗,則會輸出錯誤資訊。請注意,這個示例是一個簡單的展示,實際應用時可能需要更多的錯誤處理和安全措施。

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