Detectar ligação do browser fechado em PHP
Pergunta
Alguém sabe se é possível detectar se o navegador fechou a conexão durante a execução de um script PHP
muito tempo, quando usando apache
e mod_php
?
Por exemplo, em Java
, o HttpOutputStream
irá lançar uma exception
se um tenta escrever a ele após o navegador fechou-lo -. Ou vai responder negativamente ao checkError()
Solução
Outras dicas
Em pelo menos PHP4, connection_aborted e connection_status só funcionou após o script enviado qualquer saída para o navegador (usando: flush () | ob_flush ()). Também não espere resultados cronometrados com precisão.
É principalmente útil para verificar se ainda há alguém esperando do outro lado.
http://nz.php.net/register-shutdown-function
Provavelmente menos complicado se você quer apenas um script para morrer e lidar com isso quando um usuário termina.
(ou seja: se foi uma longa pesquisa, isso lhe poupar um monte de ciclos de operação)