2008-09-17 25 views
6

¿Alguien sabe si es posible detectar si el navegador ha cerrado la conexión durante la ejecución de un script largo PHP, al usar apache y mod_php?Detectar conexión de navegador cerrada en PHP

Por ejemplo, en Java, la HttpOutputStream lanzará una exception si se intenta escribir en él después de que el navegador se ha cerrado - O responderá negativamente a checkError().

Respuesta

1

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

Probablemente menos complicado si lo que desea es un script para morir y manejarlo cuando un usuario termina.

(Es decir: si se trataba de una larga búsqueda, esto le ahorrará un montón de ciclos de operación)

2

Por lo menos en PHP4, connection_aborted y connection_status sólo trabajó después de la secuencia de comandos envía ninguna salida al navegador (usando: flush() | ob_flush()). Además, no espere resultados cronometrados con precisión.

Es sobre todo útil para comprobar si todavía hay alguien esperando en el otro lado.

+0

'Es sobre todo útil verificar si todavía hay alguien esperando en el otro lado. ¿Cómo? – cYrus

+0

Cómo: "echo" algo o saca un encabezado(), llama 'flush()' y luego usa puedes obtener connection_aborted() para determinar si el cliente HTTP todavía está 'escuchando' o quizás se agotó el tiempo de espera. – Willem

Cuestiones relacionadas