Detectar conexión del navegador cerrada en PHP
Pregunta
¿Alguien sabe si es posible detectar si el navegador ha cerrado la conexión durante la ejecución de un largo PHP
guión, cuando se utiliza apache
y mod_php
?
Por ejemplo, en Java
, el HttpOutputStream
lanzará un exception
si uno intenta escribir en él después de que el navegador lo haya cerrado, o responderá negativamente a checkError()
.
Solución
Usar conexión_abortada()
Otros consejos
Al menos en PHP4, Connection_aborted y Connection_status solo funcionaron después de que el script envió algún resultado al navegador (usando:Flush () | ob_flush ()).Tampoco espere resultados sincronizados con precisión.
Es sobre todo útil comprobar si todavía hay alguien esperando al otro lado.
http://nz.php.net/register-shutdown-function
Probablemente sea menos complicado si solo desea que un script muera y lo maneje cuando un usuario finalice.
( Es decir:si fuera una búsqueda larga, esto le ahorraría muchos ciclos de operación)