ignore_user_abort
(PHP 4, PHP 5, PHP 7)
ignore_user_abort — クライアントの接続が切断された際にスクリプトの実行を終了するかどうかを設定する
説明
ignore_user_abort
([ bool $value
] ) : int
クライアントの接続が切断された際にスクリプトの実行を終了するかどうかを設定します。
PHP をコマンドラインスクリプトとして実行していて
スクリプトを終了させずに tty が消えた場合は、
次に何かを書こうとしたときにスクリプトが終了します。これは
value
が true
に設定されていても同じです。
パラメータ
value
- 指定すると、この関数は ini 項目 ignore_user_abort に
value
の値を設定します。 省略した場合、この関数は前の設定をそのまま返し、何も変更しません。
返り値
以前の設定を表す integer 値を返します。
例
例1 ignore_user_abort() の例
<?php// ユーザーによる中断を無視し、// スクリプトを永遠に実行させますignore_user_abort(true);set_time_limit(0);echo 'PHP における接続ハンドリングのテスト';// 無意味なループを繰り返します。// きっと誰かが他のページに移動したり// "中止" ボタンを押したりしてくれるでしょうwhile(1){ // 接続失敗? if(connection_status() != CONNECTION_NORMAL) { break; } // 10 秒間お休み sleep(10);}// ここに到達したということは、while ループ内で// 'break' が実行されたのでしょう// ここで、ログを記録したりなどの必要な処理を行います// これは、ブラウザに依存せずに行えます?>
注意
PHP は、クライアントに情報を送信しない限り ユーザーが接続を切断したかどうかを検出できません。 単に echo 文を使っただけでは、情報が送信されたかどうかを保証できません。 flush() を参照ください。
参考
- connection_aborted() - クライアントとの接続が切断されているかどうかを調べる
- connection_status() - 接続ステータスのビットフィールドを返す
- PHP における接続処理についての説明は 接続処理