Определить закрытое соединение браузера в PHP

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

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

3 ответа

Решение

Используйте connection_aborted()

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

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

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

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

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

Другие вопросы по тегам