О статусе подключений

Внутренне PHP имеет три статуса подключения:

0 - NORMAL;
1 - ABORTED (прервано пользователем);
2 - TIMEOUT (истеклож время ожидания ответа).

При нормальном выполнении сценария активно состояние NORMAL.
Если во время загрузки страницы пользователь нажал кнопку STOP, активным становится состояние ABORTED.
Если сценарий выполняется дольше отведенного ему времени, устанавливается флаг состояния TIMEOUT.
Возможно определить, как должен вести себя сценарий в зависимости от этих условий.
Если требуется, чтобы сценарий продолжал свое выполнение при разрыве соединения пользователем, нужно установить в файле конфигурации значение параметра ignore_user_abort = 1 (это также можно сделать в файлах конфигурации Apache). Можно также воспользоваться функцией ignore_user_abort().
В противном случае, сценарий завершается.
Чтобы игнорировать завершение сценария таймером, необходимо использовать функцию set_time_limit().

Если функцией register_shutdown_function() была установлена функция "запускаемая при завершении сценария",
то, вне зависимости от статуса подключения, она будет исполнена перед тем, как сценарий завершится. И в "завершающей" функции можно будет выяснить (с помощью функции: connection_aborted(),
connection_timeout() и connection_status()), был ли сценарий завершен нормально или досрочно.