php passthru()関数を使用する場合、デフォルトでは、外部スクリプトの実行が終了するまでそのままになります。
PHPのマニュアルによると:::::「プログラムがこの関数で開始された場合、プログラムをバックグラウンドで実行し続けるには、プログラムの出力をファイルまたは別の出力ストリームにリダイレクトする必要があります。そうしないと、プログラムの実行が終了するまでPHPをハングさせます。」-http ://php.net/manual/en/function.passthru.php
特定の時間(たとえば30秒間)の外部スクリプトデータを収集し、その後phpスクリプトの実行を続行したいと思います。それを行う方法はありますか?
私の現在のコードは次のとおりです。
ob_start();
passthru("/home/somefolder/somefolder2/program $pic1 $pic2");
$details = ob_get_contents();
ob_end_clean();
上記のコードの問題は次のとおりです。「プログラム」スクリプトがしばらく実行され続けることがありますが、このプロセスでユーザーが30秒を超えてハングアップすることを許可したくありません。
出力をファイルにリダイレクトし、30秒後に読み取ることを考えました(マニュアルによる)。しかし、出力をファイルにリダイレクトする方法がわかりません。