Определить закрытое соединение браузера в PHP - PullRequest
6 голосов
/ 17 сентября 2008

Кто-нибудь знает, возможно ли определить, закрыл ли браузер соединение во время выполнения длинного сценария PHP, при использовании apache и mod_php?

Например, в Java, HttpOutputStream будет выбрасывать exception, если кто-то попытается написать в него после того, как браузер закроет его - или будет отрицательно отвечать на checkError().

Ответы [ 3 ]

7 голосов
/ 17 сентября 2008

Использовать connection_aborted ()

2 голосов
/ 18 сентября 2008

По крайней мере в PHP4, connection_aborted и connection_status работали только после того, как скрипт отправил какой-либо вывод в браузер (используя: flush () | ob_flush ()). Также не ожидайте точно рассчитанных результатов.

В основном полезно проверить, есть ли еще кто-то, ожидающий на другой стороне.

1 голос
/ 17 сентября 2008

http://nz.php.net/register-shutdown-function

Вероятно, не так сложно, если вы просто хотите, чтобы скрипт умер и работал с ним, когда пользователь завершает работу.

(т. Е. Если бы это был длительный поиск, это сэкономило бы вам кучу рабочих циклов)

...