问题
Does anyone know if it is possible to detect whether the browser has closed the connection during the execution of a long PHP
script, when using apache
and mod_php
?
For example, in Java
, the HttpOutputStream
will throw an exception
if one attempts to write to it after the browser has closed it -- Or will respond negatively to checkError()
.
回答1:
Use connection_aborted()
回答2:
In at least PHP4, connection_aborted and connection_status only worked after the script sent any output to the browser (using: flush() | ob_flush()). Also don't expect accurately timed results.
It's mostly useful to check if there is still someone waiting on the other side.
回答3:
http://nz.php.net/register-shutdown-function
Probably less complicated if you just want a script to die and handle it when a user terminates.
( Ie: if it was a lengthy search, this would save you a bunch of operation cycles )
来源:https://stackoverflow.com/questions/86197/detect-browser-connection-closed-in-php