1

ページを閉じたり停止したりしても、php スクリプトは継続しているようです。

たとえば、私のスクリプトが /localhost/test.php で実行されている場合

ページを閉じた後も実行し続けることがあります。Apacheを再起動するとクリアされると確信していますが、開始後にphpスクリプトを終了するより良い方法はありますか.

4

2 に答える 2

2

ignore_user_abortを使用できますが、PHP をコマンド ライン スクリプトとして実行している場合にのみ適用されると思います。

ブラウザからスクリプトを実行する場合、私の経験では、ブラウザを閉じた後でもスクリプトが実行されていることに気付きました。彼らがどれくらいの期間実行されていたかを確認するために、私はそれ以上進みませんでした。

何分も実行できる巨大な処理を行うスクリプトは、以前は次のように制御していました。

  • データベース テーブルに格納されているフラグ変数が考慮されます。
  • フラグOnor Off( or 1or 0) を設定する方法が提供されています。
  • Offフラグはスクリプトでチェックされ、フラグが(または)であることが判明した場合、スクリプトは実行を停止します0

フラグを考慮する 1 つの方法は、以下のようにループ内にあります。

while(true)
{
    /* Your code here which probably does lot of processing */

    if($flag === false) break; // Or exit if you prefer
}

ループの後に実行する必要があるコードがある場合は、breakを使用します。
スクリプトを突然停止したい場合は、代わりにexitを使用できます。

于 2013-10-02T22:15:24.613 に答える