Home

読み込み中...

PHPは実行の途中でブラウザを閉じると、処理が中断されるのか?

2009/12/15

このエントリーをはてなブックマークに追加

結論としては、

  1. ignore_user_abort という設定値(php.iniなd)で処理を止めるかどうかを決められる
  2. ignore_user_abortがfalseであっても、止まらないことがある

1はそのままで自明なのですが、2に関しては、どうやら何かを出力しないとブラウザが閉じられたかどうか分からない模様?なので、何か例えば、バックグラウンドで重い処理をしたいときなど、とりあえず走りきってほしいときには、こっそりiframeやらimgタグなどを仕込んで、何も出力しないPHPにアクセスさせるようにすれば、実現可能じゃなかろうか。

参考リンク

  1. PHP: 実行時設定 – Manual
  2. LAMP開発メモ » Blog Archive » ユーザがブラウザを閉じた後、実行中の PHP の処理はどうなる?
  3. ある技術者の備忘録 » PHPの処理を中断させない方法
  4. 作業日報 | ignore_user_abort(false)でPHPが処理を中断しない件
  5. GASOLINE STAND » ignore_user_abort=falseなのにスクリプトが止まらない

Leave a comment