2

を使用して別のPHPファイルを実行する連続PHPループを実行していexec("php ...");ます。実行されたスクリプトを実行し、2秒間スリープしてから、再開する計画です。ただし、ループが2秒ごとに新しいインスタンスを開始しているようです。非常に長い質問ですが、スクリプトnr 2の実行が完了するまで、最初のphpスクリプトを待機させるにはどうすればよいですか?

これはすべて、コマンドラインを使用して実行されます。また、スクリプトnr2のecho関数をコマンドラインに表示したいと思います。

どんな考えでも役に立ちます。

ありがとう

4

2 に答える 2

2

Execは、インスタンス間の状態情報を保持しません。次のことができます。下付き 文字
をループする か、ある種の環境変数を設定するか、下付き文字の最初に読み取って最後に書き込むことができます。 または 、同様の方法で添え字をファイルに読み取り/書き込みさせることができます。 または 、出力がキャプチャされた添え字にパラメータを渡すことができます。






画面に出力するには、他のexec /system呼び出しを 試し て み
てください。execshell_execpassthrusystem

passthru()が機能すると思います。そうでない場合の別の可能性は、出力パラメーターを使用して添え字から出力文字列をキャプチャーするexec()を呼び出すことです。次に、添え字が戻ったときにその出力をエコーし​​ます。

また、出力パラメーターを使用する(または関数の結果を変数に取り込む)と、execはコマンドが完了するまで待機してから続行すると思います。

于 2011-03-22T14:57:17.090 に答える
0

問題は、スクリプトを実行すると、スクリプトが実行されることです。別の幹部が、あなたが見つけたように別のインスタンスを開始します。

あなたができることは、実行されたスクリプトの中にスリープを入れることです。実行を開始すると、独自のスリープを実行します。実行時間制限を設定し、ユーザーの中止を無視することを検討できます。関数を作成して、スクリプトにその関数を呼び出させることができます。その後、実行後にスリープし、関数を再度呼び出します。

 
//ここで時間制限を設定するかもしれません
関数ループ()
{{

スリープ(120);
//ループするかどうかを確認できます。
ループ();
}

ループ();
于 2011-03-22T14:50:07.620 に答える