現在の位置: ホーム> 関数カテゴリ一覧> proc_open

proc_open

コマンドを実行して、入力/出力に使用されるファイルポインターを開きます
名前:proc_open
カテゴリ:プログラムの実行
対応言語:php
一言説明:コマンドを実行して、入力/出力に使用されるファイルポインターを開きます

関数名:proc_open()

関数の説明:proc_open()関数はコマンドを実行し、入力/出力に使用されるファイルポインターを開きます。

適用バージョン:PHP 4> = 4.3.0、PHP 5、PHP 7

構文:Resource Proc_open(String $ cmd、array $ descriptorspec、array&$ pipes [、string $ cwd [、array $ env [、array $ other_options]]]])

パラメーター:

  • CMD:実行されるコマンドは、単純なコマンドまたはコマンドとパラメーターを含む配列にすることができます。
  • DecriptorsPec:入力/出力用のファイルポインターを含む配列。各要素は、次のキー値を含む配列です。
    • 0:標準入力(stdin)
    • 1:標準出力(stdout)
    • 2:標準エラー(stderr)
  • パイプ:入力/出力用のすべてのファイルポインターの配列を保存します
  • CWD(オプション):コマンドが実行される現在の作業ディレクトリ
  • env(オプション):環境変数を設定するために使用される配列
  • other_options(オプション):追加のオプションを含む連想配列。サポートされているオプションは次のとおりです。
    • Suppress_Errors:標準のエラーストリームへのエラー出力の送信を無効にします。デフォルトはfalseです。

返品値:成功したときにリソースタイプのプロセス識別子を返し、障害時にfalseを返します。

サンプルコード:

 // 执行一个简单的命令并读取输出$descriptorspec = array( 0 => array("pipe", "r"), // 标准输入1 => array("pipe", "w"), // 标准输出2 => array("pipe", "w") // 标准错误); $process = proc_open('ls -l', $descriptorspec, $pipes); if (is_resource($process)) { // 读取输出echo stream_get_contents($pipes[1]); // 关闭文件指针fclose($pipes[0]); fclose($pipes[1]); fclose($pipes[2]); // 等待进程结束,并获取返回值$return_value = proc_close($process); }

この例では、proc_open()を使用して単純なコマンド「ls -l」を実行し、ファイルポインターを使用してコマンドの出力を読み取ります。適切なDescriptorsPecアレイを設定することにより、入力/出力のファイルポインタータイプを指定できます。この例では、標準入力を1つのパイプラインにリダイレクトし、標準出力と標準誤差を他の2つのパイプラインにリダイレクトします。次に、Stream_Get_Contents()関数を使用して、標準の出力パイプラインからコマンドの出力を読み取ります。最後に、すべてのファイルポインターを閉じて、proc_close()を使用して、プロセスが終了して戻り値を取得するのを待ちます。

類似の関数
  • シェル環境を介してコマンドを実行し、完全な出力を文字列として返します shell_exec

    shell_exec

    シェル環境を介してコマンドを実行し、完全
  • 外部プログラムを実行し、元の出力を表示します passthru

    passthru

    外部プログラムを実行し、元の出力を表示し
  • コマンドを実行して、入力/出力に使用されるファイルポインターを開きます proc_open

    proc_open

    コマンドを実行して、入力/出力に使用され
  • 外部プログラムを実行します exec

    exec

    外部プログラムを実行します
  • proc_openによって開かれたプロセスを殺します proc_terminate

    proc_terminate

    proc_openによって開かれたプロセ
  • 文字列をシェルコマンドで使用できるパラメーターにトランスコードします escapeshellarg

    escapeshellarg

    文字列をシェルコマンドで使用できるパラメ
  • 外部プログラムを実行し、出力を表示します system

    system

    外部プログラムを実行し、出力を表示します
  • proc_open()関数によって開かれたプロセスに関する情報を取得します proc_get_status

    proc_get_status

    proc_open()関数によって開かれ
人気記事(にんききじ)