PHP で Exec() の後に StdErr にアクセスする方法
PHP では、exec() 関数はコマンドを実行し、その出力を次のように返します。文字列。ただし、コマンドでエラーが発生した場合、通常、エラーは抑制され、表示されません。このようなエラーを処理するには、stderr ストリームを理解することが重要です。
proc_open を使用して StdErr を読み取る
コマンドの実行後に stderr にアクセスするには、proc_open() 関数を使用できます。 、実行プロセスをきめ細かく制御できます。これにより、stdin、stdout、stderr の入出力ストリームを定義できます。
例を示します:
$descriptorspec = [ 0 => ["pipe", "r"], // stdin 1 => ["pipe", "w"], // stdout 2 => ["pipe", "w"], // stderr ]; $process = proc_open('./test.sh', $descriptorspec, $pipes, dirname(__FILE__), null); $stdout = stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr = stream_get_contents($pipes[2]); fclose($pipes[2]);
$pipes[2] ストリームから読み取ることで、次のようなアクセスができます。実行されたコマンドによって生成された stderr 出力。
以上がPHP の exec() を使用した後に StdErr 出力をキャプチャして処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。