ホームページ >バックエンド開発 >PHPチュートリアル >PHP の `exec()` から標準エラー (StdErr) をキャプチャするにはどうすればよいですか?
StdErr による Exec() での PHP エラー処理
PHP では、exec() 関数はコマンドを実行し、次のような結果を返します。実行が成功した場合の URL。ただし、標準エラー (StdErr) ストリームを通じてエラー メッセージにアクセスすることもできます。その方法は次のとおりです。
StdErr を処理する 1 つの方法は、proc_open 関数を使用することです。これにより、コマンドの実行をより詳細に制御できます。次の例を考えてみましょう。
// Initialize I/O descriptors $descriptorspec = [ 0 => ["pipe", "r"], // stdin 1 => ["pipe", "w"], // stdout 2 => ["pipe", "w"] // stderr ]; // Execute the command using the descriptors $process = proc_open('./test.sh', $descriptorspec, $pipes, dirname(__FILE__), null); // Read from stdout and stderr pipes $stdout = stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr = stream_get_contents($pipes[2]); fclose($pipes[2]); // Output the content of stdout and stderr echo "stdout :\n"; var_dump($stdout); echo "stderr :\n"; var_dump($stderr);
この例では、指定された記述子を使用して ./test.sh が実行され、stdout と stderr の両方からの出力がキャプチャされます。実行すると、スクリプトは stdout と stderr の両方の内容を別々に表示します。
proc_open を使用すると、StdErr を効果的に処理し、PHP スクリプトでのコマンド実行中に生成されたエラー メッセージにアクセスできます。
以上がPHP の `exec()` から標準エラー (StdErr) をキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。