2008-09-17 7 views
6

Est-ce que quelqu'un sait s'il est possible de détecter si le navigateur a fermé la connexion pendant l'exécution d'un long script PHP, en utilisant apache et mod_php?Détecter la connexion du navigateur fermée en PHP

Par exemple, dans Java, le HttpOutputStream lancera une exception si l'on tente d'écrire après le navigateur a fermé - ou répondra négativement à checkError().

Répondre

7
+0

Cela ne fonctionne pas dans Fedora22, PHP 5.6.12 même lors de la sortie de données, et ignore_user_abort (false). – sivann

1

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

Probablement moins compliqué si vous voulez juste un script pour mourir et gérer quand un utilisateur se termine.

(Ie: si elle était une longue recherche, cela vous sauver un tas de cycles de fonctionnement)

2

Dans au moins PHP4, connection_aborted et connection_status ne fonctionnait après que le script a envoyé une sortie au navigateur (en utilisant: flush() | ob_flush()). Ne vous attendez pas non plus à des résultats précis.

Il est surtout utile de vérifier s'il y a encore quelqu'un qui attend de l'autre côté.

+0

'C'est surtout utile de vérifier s'il y a encore quelqu'un qui attend de l'autre côté. ': Comment? – cYrus

+0

Comment: "echo" quelque chose ou en sortie un en-tête(), appelez 'flush()' et ensuite utilisez vous pouvez obtenir connection_aborted() pour déterminer si le client HTTP est encore 'écoute' ou peut-être expiré. – Willem

Questions connexes