Détecter la connexion du navigateur fermée en PHP
Question
Est-ce que quelqu'un sait s'il est possible de détecter si le navigateur a fermé la connexion lors de l'exécution d'un long script PHP
, lorsque vous utilisez apache
et mod_php
?
Par exemple, dans Java
, le HttpOutputStream
lève une exception
si l'on tente d'y écrire après la fermeture du navigateur - - ou répondra négativement à checkError ()
.
La solution
Utilisez connection_aborted ()
Autres conseils
En PHP4 au moins, connection_aborted et connection_status ne fonctionnaient qu'après que le script ait envoyé une sortie au navigateur (à l'aide de: flush () | ob_flush ()). Ne vous attendez pas non plus à des résultats chronométrés avec précision.
Il est surtout utile de vérifier s'il y a toujours quelqu'un qui attend de l'autre côté.
http://nz.php.net/register-shutdown-function
Probablement moins compliqué si vous voulez juste qu'un script meure et le gère quand un utilisateur se termine.
(Par exemple, si la recherche était longue, cela vous épargnerait de nombreux cycles de fonctionnement)