ブラウザが閉じても処理を続ける (PHP)


PHPで処理に時間がかかっている場合、途中でブラウザを閉じてもPHPは実行を続けようとします。 その中で、ブラウザとの接続が無いと(無いことがわかったところで)処理が中断されます。中断せずにそのまま続行するためには、php.iniのignore_user_abortをtrueにします。例えば、ページを開くことをトリガーにしてなにかの処理を完結する場合などでは必要だと思います。

通常は ignore_user_abort をfalseとし、例外的にtrueにしたい場合は、スクリプトの中で以下のように記述することででも可能です。デフォルトでは多くのレンタルサーバーではfalse(off)になっているようです。さくらインターネット、Coreserverではfalseでした。

ignore_user_abort(true);

このほうが、サーバーへの負荷は少なくなります。
ブラウザとの接続については出力しようとしたときに確認されるようなので、ignore_user_abortがfalseでも、ブラウザを閉じたと同時に処理が中断するわけではなさそうです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

SPAM防止のため数字と漢数字の算数の計算をお願いします。 * Time limit is exhausted. Please reload CAPTCHA.