PHP でのリアルタイム プロセス出力
Web ページ上でリアルタイムに出力するプロセスを実行すると、ユーザー エクスペリエンスが向上し、即時的な結果が得られます。フィードバック。 PHP では、proc_open() 関数を使用してこれを実現できます。
リアルタイム出力の取得
プロセスからリアルタイム出力を取得するには、proc_open を使用します。 () は次のようになります:
$cmd = "ping 127.0.0.1"; $descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w") ); $process = proc_open($cmd, $descriptorspec, $pipes, realpath('./'), array()); // Display output echo "<pre class="brush:php;toolbar:false">"; if (is_resource($process)) { while ($s = fgets($pipes[1])) { print $s; flush(); } } echo "";
このコードでは、ping プロセスの出力が継続的に読み込まれます。パイプ $pipes[1] が表示されます。
ページ終了時にプロセスを強制終了
ページの終了時にプロセスを強制終了するには、次のコードを使用します。
register_shutdown_function(function() use ($process) { proc_terminate($process); // Wait for process to terminate gracefully proc_close($process); });
このコードは、スクリプトの終了時にプロセスを終了するシャットダウン関数を登録します。また、プロセスが終了するまで適切に待ってから閉じます。
proc_open() と register_shutdown_function() を活用することで、PHP でプロセスを実行し、そのリアルタイム出力を取得できます。ページが終了すると、システム リソースの残留を防ぐためにプロセスが自動的に終了します。
以上がPHP でリアルタイムのプロセス出力を取得し、プロセスを正常に強制終了するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。